[lxc-devel] [PATCH] confile: Don't crash on invalid id_map

Stéphane Graber stgraber at ubuntu.com
Tue Feb 25 21:42:56 UTC 2014


Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 src/lxc/confile.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index afc9e32..8b1c0b6 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -1300,13 +1300,10 @@ static int config_idmap(const char *key, const char *value, struct lxc_conf *lxc
 		goto out;
 	memset(idmap, 0, sizeof(*idmap));
 
-	idmaplist->elem = idmap;
-
-	lxc_list_add_tail(&lxc_conf->id_map, idmaplist);
-
 	ret = sscanf(value, "%c %lu %lu %lu", &type, &nsid, &hostid, &range);
 	if (ret != 4)
 		goto out;
+
 	INFO("read uid map: type %c nsid %lu hostid %lu range %lu", type, nsid, hostid, range);
 	if (type == 'u')
 		idmap->idtype = ID_TYPE_UID;
@@ -1314,10 +1311,14 @@ static int config_idmap(const char *key, const char *value, struct lxc_conf *lxc
 		idmap->idtype = ID_TYPE_GID;
 	else
 		goto out;
+
 	idmap->hostid = hostid;
 	idmap->nsid = nsid;
 	idmap->range = range;
 
+	idmaplist->elem = idmap;
+	lxc_list_add_tail(&lxc_conf->id_map, idmaplist);
+
 	return 0;
 
 out:
-- 
1.9.0



More information about the lxc-devel mailing list