From a6390f01cc5a5c016c151e5f0d486d276dfd4555 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Fri, 23 Dec 2016 13:10:01 +0100 Subject: [PATCH] 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 --- src/lxc/conf.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index c8c2a5452..530a57ed1 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4256,10 +4256,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; @@ -4346,11 +4350,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