]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
don't dereference a NULL c->lxc_conf
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Wed, 3 Jun 2015 17:20:19 +0000 (17:20 +0000)
committerStéphane Graber <stgraber@ubuntu.com>
Wed, 3 Jun 2015 18:09:51 +0000 (14:09 -0400)
Commit 37cf711b added a destroy hook, but when it checks
at destroy time whether that hook exists, it assumes that
c->lxc_conf is good.  In fact lxc_conf can be NULL, so check
for that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/lxccontainer.c

index 916c99c916eba38ab04aa939fbbdbb2195007ced..445cc226bace980f384c42d08a3945ad057a628e 100644 (file)
@@ -2160,11 +2160,12 @@ static bool container_destroy(struct lxc_container *c)
 {
        bool bret = false;
        int ret;
-       struct lxc_conf *conf = c->lxc_conf;
+       struct lxc_conf *conf;
 
        if (!c || !do_lxcapi_is_defined(c))
                return false;
 
+       conf = c->lxc_conf;
        if (container_disk_lock(c))
                return false;
 
@@ -2174,7 +2175,7 @@ static bool container_destroy(struct lxc_container *c)
                goto out;
        }
 
-       if (!lxc_list_empty(&conf->hooks[LXCHOOK_DESTROY])) {
+       if (conf && !lxc_list_empty(&conf->hooks[LXCHOOK_DESTROY])) {
                /* Start of environment variable setup for hooks */
                if (setenv("LXC_NAME", c->name, 1)) {
                        SYSERROR("failed to set environment variable for container name");