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 /src/package.c | |
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.
Diffstat (limited to 'src/package.c')
-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: |