From: Christian Brauner Date: Sat, 7 Dec 2019 23:43:40 +0000 (+0100) Subject: cgroups/cgfsng: cgfsng_devices_activate() X-Git-Tag: lxc-4.0.0~78^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e552bd1a34a929557fe13d32fb41e7da502c96b3;p=thirdparty%2Flxc.git cgroups/cgfsng: cgfsng_devices_activate() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index f6e7a9df6..fd5ab0cf1 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -2810,12 +2810,26 @@ __cgfsng_ops bool cgfsng_devices_activate(struct cgroup_ops *ops, { #ifdef HAVE_STRUCT_BPF_CGROUP_DEV_CTX __do_bpf_program_free struct bpf_program *devices = NULL; - struct lxc_conf *conf = handler->conf; - struct hierarchy *unified = ops->unified; int ret; + struct lxc_conf *conf; + struct hierarchy *unified; struct lxc_list *it; struct bpf_program *devices_old; + if (!ops) + return ret_set_errno(false, ENOENT); + + if (!ops->hierarchies) + return true; + + if (!ops->container_cgroup) + return ret_set_errno(false, EEXIST); + + if (!handler || !handler->conf) + return ret_set_errno(false, EINVAL); + conf = handler->conf; + + unified = ops->unified; if (!unified || !unified->bpf_device_controller || !unified->container_full_path || lxc_list_empty(&conf->devices)) return true;