]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
conf: correctly cleanup memory in get_minimal_idmap() 3382/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 15 Apr 2020 12:54:35 +0000 (14:54 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Wed, 15 Apr 2020 12:54:35 +0000 (14:54 +0200)
Fixes: Coverity 1461760.
Fixes: Coverity 1461762.
Fixes: Coverity 1461763.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/conf.c

index 474b01f92eeb3527348525b5cf4eb4164edbeacd..20d1583fc426c011081985a0f1d05115eb929370 100644 (file)
@@ -3985,45 +3985,35 @@ static struct lxc_list *get_minimal_idmap(const struct lxc_conf *conf,
        tmplist = malloc(sizeof(*tmplist));
        if (!tmplist)
                return NULL;
-       lxc_list_add_elem(tmplist, container_root_uid);
+       /* idmap will now keep track of that memory. */
+       lxc_list_add_elem(tmplist, move_ptr(host_uid_map));
        lxc_list_add_tail(idmap, tmplist);
 
        if (container_root_uid) {
-               /* idmap will now keep track of that memory. */
-               move_ptr(container_root_uid);
-
                /* Add container root to the map. */
                tmplist = malloc(sizeof(*tmplist));
                if (!tmplist)
                        return NULL;
-               lxc_list_add_elem(tmplist, host_uid_map);
+               /* idmap will now keep track of that memory. */
+               lxc_list_add_elem(tmplist, move_ptr(container_root_uid));
                lxc_list_add_tail(idmap, tmplist);
        }
-       /* idmap will now keep track of that memory. */
-       move_ptr(container_root_uid);
-       /* idmap will now keep track of that memory. */
-       move_ptr(host_uid_map);
 
        tmplist = malloc(sizeof(*tmplist));
        if (!tmplist)
                return NULL;
-       lxc_list_add_elem(tmplist, container_root_gid);
+       /* idmap will now keep track of that memory. */
+       lxc_list_add_elem(tmplist, move_ptr(host_gid_map));
        lxc_list_add_tail(idmap, tmplist);
 
        if (container_root_gid) {
-               /* idmap will now keep track of that memory. */
-               move_ptr(container_root_gid);
-
                tmplist = malloc(sizeof(*tmplist));
                if (!tmplist)
                        return NULL;
-               lxc_list_add_elem(tmplist, host_gid_map);
+               /* idmap will now keep track of that memory. */
+               lxc_list_add_elem(tmplist, move_ptr(container_root_gid));
                lxc_list_add_tail(idmap, tmplist);
        }
-       /* idmap will now keep track of that memory. */
-       move_ptr(container_root_gid);
-       /* idmap will now keep track of that memory. */
-       move_ptr(host_gid_map);
 
        TRACE("Allocated minimal idmapping for ns uid %d and ns gid %d", nsuid, nsgid);