diff options
author | Jussi Kukkonen <jussi.kukkonen@compile.fi> | 2018-05-29 09:37:41 +0300 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2018-07-02 10:06:53 -0500 |
commit | d609ef3c6cec438f32383ffb03081a36583402a5 (patch) | |
tree | a8384386e189755b41b7db83ca57a1bcb2574e72 | |
parent | 5c4b90dfd48d476b9e7aae2ad6627dd6f03ac557 (diff) | |
download | apk-tools-d609ef3c6cec438f32383ffb03081a36583402a5.tar.gz apk-tools-d609ef3c6cec438f32383ffb03081a36583402a5.tar.bz2 apk-tools-d609ef3c6cec438f32383ffb03081a36583402a5.tar.xz apk-tools-d609ef3c6cec438f32383ffb03081a36583402a5.zip |
Invalidate id cache after script execution
It's common for a pre-install script to do something like
addgroup -S group 2>/dev/null
When apk installs files after this, it sets the owner/group based on id cache
but currently the id cache is stale and doesn't contain the new group at that
point: instead the file will be installed with gid that the build host
happened to have for that group -- on target this might mean a non-existing
group or a completely different group.
We can't know if the script really did modify id cache contents so make sure
to reset the id cache on every script execution.
-rw-r--r-- | src/package.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/package.c b/src/package.c index d851ff0..3be8b84 100644 --- a/src/package.c +++ b/src/package.c @@ -1032,6 +1032,10 @@ void apk_ipkg_run_script(struct apk_installed_package *ipkg, if (apk_db_run_script(db, fn, argv) < 0) goto err; + + /* Script may have done something that changes id cache contents */ + apk_id_cache_reset(&db->id_cache); + goto cleanup; err_log: |