From: Zbigniew Jędrzejewski-Szmek Date: Wed, 24 Apr 2019 08:54:44 +0000 (+0200) Subject: core: adjust unit_get_ancestor_memory_{low,min}() to work with units which don't... X-Git-Tag: v243-rc1~508^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c5322608a5b78d55381fc87985304ec515cd723d;p=thirdparty%2Fsystemd.git core: adjust unit_get_ancestor_memory_{low,min}() to work with units which don't have a CGroupContext Coverity doesn't like the fact that unit_get_cgroup_context() returns NULL for unit types that don't have a CGroupContext. We don't expect to call those functions with such unit types, so this isn't an immediate problem, but we can make things more robust by handling this case. CID #1400683, #1400684. --- diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 946fab24c2c..32d5605899e 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -403,15 +403,12 @@ int cgroup_add_device_allow(CGroupContext *c, const char *dev, const char *mode) assert(u); \ \ c = unit_get_cgroup_context(u); \ - \ - if (c->entry##_set) \ + if (c && c->entry##_set) \ return c->entry; \ \ - while (UNIT_ISSET(u->slice)) { \ - u = UNIT_DEREF(u->slice); \ + while ((u = UNIT_DEREF(u->slice))) { \ c = unit_get_cgroup_context(u); \ - \ - if (c->default_##entry##_set) \ + if (c && c->default_##entry##_set) \ return c->default_##entry; \ } \ \