From: Wolfgang Bumiller Date: Fri, 23 Dec 2016 12:10:01 +0000 (+0100) Subject: conf: less error prone pointer access X-Git-Tag: lxc-1.0.10~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d54b7001e918f5b64cfc684fd441b929de32100;p=thirdparty%2Flxc.git conf: less error prone pointer access These functions define pointer to their key shifted by a number and guard access to it later via another variable. Let's make this more explicit (and additionally have the pointer be NULL in the case where it is not supposed to be used). Signed-off-by: Wolfgang Bumiller --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 124ff37d1..d146316c1 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4582,10 +4582,14 @@ int lxc_clear_cgroups(struct lxc_conf *c, const char *key) { struct lxc_list *it,*next; bool all = false; - const char *k = key + 11; + const char *k = NULL; if (strcmp(key, "lxc.cgroup") == 0) all = true; + else if (strncmp(key, "lxc.cgroup.", sizeof("lxc.cgroup.")-1) == 0) + k = key + sizeof("lxc.cgroup.")-1; + else + return -1; lxc_list_for_each_safe(it, &c->cgroup, next) { struct lxc_cgroup *cg = it->elem; @@ -4634,11 +4638,15 @@ int lxc_clear_hooks(struct lxc_conf *c, const char *key) { struct lxc_list *it,*next; bool all = false, done = false; - const char *k = key + 9; + const char *k = NULL; int i; if (strcmp(key, "lxc.hook") == 0) all = true; + else if (strncmp(key, "lxc.hook.", sizeof("lxc.hook.")-1) == 0) + k = key + sizeof("lxc.hook.")-1; + else + return -1; for (i=0; i