]> 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>
Fri, 15 Dec 2017 12:35:41 +0000 (13:35 +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 245328ab17c2ae95b75ee65037dd3c2fa34ed6b5..2365365e58b92363daa4591d95aa0a3899987450 100644 (file)
@@ -1147,6 +1147,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 5afb1a522477cabd079b160a69f3937cb913ab05..2fb974fce50e5419cef337adda1cf1961b407dfa 100644 (file)
@@ -509,6 +509,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);