]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425866
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 9 Dec 2017 18:26:52 +0000 (19:26 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 17 Dec 2017 15:33:31 +0000 (16:33 +0100)
free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/attach.c

index b2ee12977c990410589dfad12674f676f6b8d9e6..117d3418b04445fc970e15cbe01257f16c11637a 100644 (file)
@@ -820,13 +820,17 @@ int lxc_attach(const char *name, const char *lxcpath,
        init_ctx->personality = personality;
 
        init_ctx->container = lxc_container_new(name, lxcpath);
-       if (!init_ctx->container)
+       if (!init_ctx->container) {
+               lxc_proc_put_context_info(init_ctx);
                return -1;
+       }
 
        if (!init_ctx->container->lxc_conf) {
                init_ctx->container->lxc_conf = lxc_conf_init();
-               if (!init_ctx->container->lxc_conf)
+               if (!init_ctx->container->lxc_conf) {
+                       lxc_proc_put_context_info(init_ctx);
                        return -ENOMEM;
+               }
        }
 
        if (!fetch_seccomp(init_ctx->container, options))
@@ -1119,6 +1123,7 @@ int lxc_attach(const char *name, const char *lxcpath,
        if (ret <= 0) {
                ERROR("Expected to receive sequence number 0: %s.", strerror(errno));
                shutdown(ipc_sockets[1], SHUT_RDWR);
+               lxc_proc_put_context_info(init_ctx);
                rexit(-1);
        }
 
@@ -1129,6 +1134,7 @@ int lxc_attach(const char *name, const char *lxcpath,
        if (ret < 0) {
                ERROR("Failed to enter namespaces.");
                shutdown(ipc_sockets[1], SHUT_RDWR);
+               lxc_proc_put_context_info(init_ctx);
                rexit(-1);
        }
        /* close namespace file descriptors */
@@ -1167,6 +1173,7 @@ int lxc_attach(const char *name, const char *lxcpath,
        if (pid <= 0) {
                SYSERROR("Failed to create subprocess.");
                shutdown(ipc_sockets[1], SHUT_RDWR);
+               lxc_proc_put_context_info(init_ctx);
                rexit(-1);
        }
 
@@ -1181,10 +1188,12 @@ int lxc_attach(const char *name, const char *lxcpath,
                 */
                ERROR("Intended to send pid %d: %s.", pid, strerror(errno));
                shutdown(ipc_sockets[1], SHUT_RDWR);
+               lxc_proc_put_context_info(init_ctx);
                rexit(-1);
        }
 
        /* The rest is in the hands of the initial and the attached process. */
+       lxc_proc_put_context_info(init_ctx);
        rexit(0);
 }