From d609ef3c6cec438f32383ffb03081a36583402a5 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Tue, 29 May 2018 09:37:41 +0300 Subject: 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. --- src/package.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/package.c') 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: -- cgit v1.2.3-60-g2f50