]> git.proxmox.com Git - mirror_lxc.git/commitdiff
commands_utils: auto free lxc_add_state_client
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 19 Feb 2019 22:21:50 +0000 (23:21 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 19 Feb 2019 22:23:58 +0000 (23:23 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/commands_utils.c

index c92cdd57cc3b957e1ecbab682cb542b4d26fd0c3..ce167961d050c004875b67e722c969201c26840e 100644 (file)
@@ -191,9 +191,9 @@ int lxc_cmd_connect(const char *name, const char *lxcpath,
 int lxc_add_state_client(int state_client_fd, struct lxc_handler *handler,
                         lxc_state_t states[MAX_STATE])
 {
+       __do_free struct lxc_state_client *newclient = NULL;
+       __do_free struct lxc_list *tmplist = NULL;
        int state;
-       struct lxc_state_client *newclient;
-       struct lxc_list *tmplist;
 
        newclient = malloc(sizeof(*newclient));
        if (!newclient)
@@ -204,21 +204,19 @@ int lxc_add_state_client(int state_client_fd, struct lxc_handler *handler,
        newclient->clientfd = state_client_fd;
 
        tmplist = malloc(sizeof(*tmplist));
-       if (!tmplist) {
-               free(newclient);
+       if (!tmplist)
                return -ENOMEM;
-       }
 
        state = handler->state;
        if (states[state] != 1) {
                lxc_list_add_elem(tmplist, newclient);
                lxc_list_add_tail(&handler->conf->state_clients, tmplist);
        } else {
-               free(newclient);
-               free(tmplist);
                return state;
        }
 
        TRACE("Added state client %d to state client list", state_client_fd);
+       move_ptr(newclient);
+       move_ptr(tmplist);
        return MAX_STATE;
 }