diff options
author | Fredrik Gustafsson <fredrigu@axis.com> | 2019-11-20 11:48:48 +0100 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2020-04-28 14:48:49 +0300 |
commit | d61c009f7a7ba9c99797855d8cd4e0a503c2fda5 (patch) | |
tree | 891bff6bb4146e17ec94dbfbdcb909e048a0fb09 /src/database.c | |
parent | b67df9843dbdad15cb794fa26a7c216a14453690 (diff) | |
download | apk-tools-d61c009f7a7ba9c99797855d8cd4e0a503c2fda5.tar.gz apk-tools-d61c009f7a7ba9c99797855d8cd4e0a503c2fda5.tar.bz2 apk-tools-d61c009f7a7ba9c99797855d8cd4e0a503c2fda5.tar.xz apk-tools-d61c009f7a7ba9c99797855d8cd4e0a503c2fda5.zip |
apk: do not manage file ownership as non-root or when asked so
If apk is run as a non-root user, it's not possible to chown files.
Maintainers note: minor wording changes on commit log and man page.
Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
Diffstat (limited to 'src/database.c')
-rw-r--r-- | src/database.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/database.c b/src/database.c index cbc6667..dd27e2a 100644 --- a/src/database.c +++ b/src/database.c @@ -1347,6 +1347,10 @@ static int apk_db_create(struct apk_database *db) if (fd < 0) return -errno; close(fd); + fd = openat(db->root_fd, apk_installed_file, O_CREAT|O_RDWR|O_TRUNC|O_CLOEXEC, 0644); + if (fd < 0) + return -errno; + close(fd); return 0; } @@ -2554,7 +2558,7 @@ static int apk_db_install_archive_entry(void *_ctx, db->root_fd, ae, format_tmpname(pkg, file, tmpname_file), format_tmpname(pkg, link_target_file, tmpname_link_target), - is, extract_cb, ctx); + is, extract_cb, ctx, db->extract_flags); switch (r) { case 0: |