diff options
author | Ariadne Conill <ariadne@dereferenced.org> | 2021-03-18 23:15:01 -0600 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2021-03-19 10:28:55 +0000 |
commit | 4fe5ac83287678a5f870def74ed28f45ab22815f (patch) | |
tree | 03b0eee8cf6ceb4e6c1f5d9d65758d4bd04b9868 /src/context.c | |
parent | 511621438d00b3df645399212ea939356db5edb6 (diff) | |
download | apk-tools-4fe5ac83287678a5f870def74ed28f45ab22815f.tar.gz apk-tools-4fe5ac83287678a5f870def74ed28f45ab22815f.tar.bz2 apk-tools-4fe5ac83287678a5f870def74ed28f45ab22815f.tar.xz apk-tools-4fe5ac83287678a5f870def74ed28f45ab22815f.zip |
database: do not chroot(".") unless actually necessary
If we use default root (/), then we do not have to chroot to run scripts.
Use APK_NO_CHROOT flag for this scenario to avoid the chroot. This helps
with using apk with bwrap and OSTree.
Closes #10736.
Diffstat (limited to 'src/context.c')
-rw-r--r-- | src/context.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/context.c b/src/context.c index 784f082..a6d7e5d 100644 --- a/src/context.c +++ b/src/context.c @@ -42,6 +42,7 @@ int apk_ctx_prepare(struct apk_ctx *ac) if (!ac->keys_dir) ac->keys_dir = "etc/apk/keys"; if (!ac->root) ac->root = "/"; if (!ac->cache_max_age) ac->cache_max_age = 4*60*60; /* 4 hours default */ + if (!strcmp(ac->root, "/")) ac->flags |= APK_NO_CHROOT; /* skip chroot if root is default */ ac->root_fd = openat(AT_FDCWD, ac->root, O_RDONLY | O_CLOEXEC); if (ac->root_fd < 0 && (ac->open_flags & APK_OPENF_CREATE)) { |