[lxc-devel] [lxc/master] conf: correctly cleanup memory in get_minimal_idmap()
brauner on Github
lxc-bot at linuxcontainers.org
Wed Apr 15 12:56:37 UTC 2020
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 442 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200415/566f97a2/attachment.bin>
-------------- next part --------------
From 47649d5bba30ed4b9bcbbaea146dee5fe0150f6d Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 15 Apr 2020 14:54:35 +0200
Subject: [PATCH] conf: correctly cleanup memory in get_minimal_idmap()
Fixes: Coverity 1461760.
Fixes: Coverity 1461762.
Fixes: Coverity 1461763.
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/conf.c | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 474b01f92e..20d1583fc4 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -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);
More information about the lxc-devel
mailing list