]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425862
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 9 Dec 2017 18:48:48 +0000 (19:48 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 17 Dec 2017 15:33:37 +0000 (16:33 +0100)
initialize handler

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

index b4b37e5ac8580b8e8757fe81535f5cd0dead78b3..d4aef39e9a448f34dc44f4f3e5728a93429811f0 100644 (file)
@@ -1145,6 +1145,8 @@ static bool do_dump(struct lxc_container *c, char *mode, struct migrate_opts *op
 
                close(criuout[0]);
 
+               lxc_zero_handler(&h);
+
                h.name = c->name;
                if (!cgroup_init(&h)) {
                        ERROR("failed to cgroup_init()");
index 57d0e083c286480a6b5e1d909aace1fb25503767..23b0f5f4a20e6535401e6f26c2012310048506ba 100644 (file)
@@ -505,6 +505,31 @@ out_sigfd:
        return -1;
 }
 
+void lxc_zero_handler(struct lxc_handler *handler)
+{
+       int i;
+
+       memset(handler, 0, sizeof(struct lxc_handler));
+
+       handler->clone_flags = -1;
+
+       handler->pinfd = -1;
+
+       handler->sigfd = -1;
+
+       for (i = 0; i < LXC_NS_MAX; i++)
+               handler->nsfd[i] = -1;
+
+       handler->data_sock[0] = -1;
+       handler->data_sock[1] = -1;
+
+       handler->state_socket_pair[0] = -1;
+       handler->state_socket_pair[1] = -1;
+
+       handler->sync_sock[0] = -1;
+       handler->sync_sock[1] = -1;
+}
+
 void lxc_free_handler(struct lxc_handler *handler)
 {
        if (handler->conf && handler->conf->maincmd_fd)
index be724bcaf5190cf6d82fb9c41c00c126b6434f54..28f9817bf2f15ab6d1e46f6c4d338009d3f65a51 100644 (file)
@@ -125,6 +125,7 @@ extern struct lxc_handler *lxc_init_handler(const char *name,
                                            struct lxc_conf *conf,
                                            const char *lxcpath,
                                            bool daemonize);
+extern void lxc_zero_handler(struct lxc_handler *handler);
 extern void lxc_free_handler(struct lxc_handler *handler);
 extern int lxc_init(const char *name, struct lxc_handler *handler);
 extern void lxc_fini(const char *name, struct lxc_handler *handler);