From: Christian Brauner Date: Wed, 3 Feb 2021 09:58:35 +0000 (+0100) Subject: conf: restrict open for lxc_mount_rootfs() X-Git-Tag: lxc-5.0.0~303^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99ca563299f82cf0fb9e8e592fd8a96cf785bc4a;p=thirdparty%2Flxc.git conf: restrict open for lxc_mount_rootfs() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index bfbc98a20..4e6724969 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -1271,7 +1271,7 @@ static int lxc_mount_rootfs(struct lxc_conf *conf) rootfs->path, rootfs->mount, rootfs->options ? rootfs->options : "(null)"); - rootfs->mntpt_fd = openat(-1, rootfs->mount, O_RDONLY | O_CLOEXEC | O_DIRECTORY | O_PATH); + rootfs->mntpt_fd = open_at(-EBADF, rootfs->mount, PROTECT_OPATH_DIRECTORY, PROTECT_LOOKUP_ABSOLUTE_XDEV, 0); if (rootfs->mntpt_fd < 0) return -errno; diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h index 9331d3508..afeb421d7 100644 --- a/src/lxc/syscall_wrappers.h +++ b/src/lxc/syscall_wrappers.h @@ -262,6 +262,7 @@ struct lxc_open_how { #define PROTECT_LOOKUP_ABSOLUTE (PROTECT_LOOKUP_BENEATH & ~RESOLVE_BENEATH) #define PROTECT_LOOKUP_ABSOLUTE_WITH_SYMLINKS (PROTECT_LOOKUP_ABSOLUTE & ~RESOLVE_NO_SYMLINKS) #define PROTECT_LOOKUP_ABSOLUTE_WITH_MAGICLINKS (PROTECT_LOOKUP_ABSOLUTE & ~(RESOLVE_NO_SYMLINKS | RESOLVE_NO_MAGICLINKS)) +#define PROTECT_LOOKUP_ABSOLUTE_XDEV (PROTECT_LOOKUP_ABSOLUTE & ~RESOLVE_NO_XDEV) #define PROTECT_OPATH_FILE (O_NOFOLLOW | O_PATH | O_CLOEXEC) #define PROTECT_OPATH_DIRECTORY (PROTECT_OPATH_FILE | O_DIRECTORY)