summaryrefslogtreecommitdiff
path: root/src/database.c
diff options
context:
space:
mode:
authorFredrik Gustafsson <fredrigu@axis.com>2019-11-20 11:48:48 +0100
committerTimo Teräs <timo.teras@iki.fi>2020-04-28 14:48:49 +0300
commitd61c009f7a7ba9c99797855d8cd4e0a503c2fda5 (patch)
tree891bff6bb4146e17ec94dbfbdcb909e048a0fb09 /src/database.c
parentb67df9843dbdad15cb794fa26a7c216a14453690 (diff)
downloadapk-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.c6
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: