]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
conf: add lxc_wants_cap() helper
authorChristian Brauner <christian.brauner@ubuntu.com>
Mon, 4 Jan 2021 10:06:02 +0000 (11:06 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 4 Jan 2021 10:16:31 +0000 (11:16 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c
src/lxc/conf.h

index 0078b3c858aaa362e9417ffbe69284ab0e397cde..bf181987f193d84b9b6f9ca3b849d127d80ac1ba 100644 (file)
@@ -1832,10 +1832,7 @@ __cgfsng_ops static bool cgfsng_mount(struct cgroup_ops *ops,
        }
 
        if (!wants_force_mount) {
-               if (!lxc_list_empty(&handler->conf->keepcaps))
-                       wants_force_mount = !in_caplist(CAP_SYS_ADMIN, &handler->conf->keepcaps);
-               else
-                       wants_force_mount = in_caplist(CAP_SYS_ADMIN, &handler->conf->caps);
+               wants_force_mount = lxc_wants_cap(CAP_SYS_ADMIN, handler->conf);
 
                /*
                 * Most recent distro versions currently have init system that
index 84b0f81b0f754db2b73d73c1bc5d4e5d6a9eeac2..5a501b442aa8fda4a625b934c96f3cdff0463b8e 100644 (file)
@@ -514,6 +514,15 @@ __hidden extern int run_script(const char *name, const char *section, const char
 __hidden extern int run_script_argv(const char *name, unsigned int hook_version, const char *section,
                                    const char *script, const char *hookname, char **argsin);
 __hidden extern int in_caplist(int cap, struct lxc_list *caps);
+
+static inline int lxc_wants_cap(int cap, struct lxc_conf *conf)
+{
+       if (!lxc_list_empty(&conf->keepcaps))
+               return !in_caplist(cap, &conf->keepcaps);
+
+       return in_caplist(cap, &conf->caps);
+}
+
 __hidden extern int setup_sysctl_parameters(struct lxc_list *sysctls);
 __hidden extern int lxc_clear_sysctls(struct lxc_conf *c, const char *key);
 __hidden extern int setup_proc_filesystem(struct lxc_list *procs, pid_t pid);