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

Serge Hallyn serge.hallyn at ubuntu.com
Tue Feb 25 21:52:50 UTC 2014


Quoting Stéphane Graber (stgraber at ubuntu.com):
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Acked-by: Serge E. Hallyn <serge.hallyn 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
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list