lxc: fix lxc-usernsexec
This commit is contained in:
parent
7b6a1a1ddf
commit
3906e60abc
|
@ -0,0 +1,83 @@
|
|||
commit c14ea11dccbfa80021a9b169b94bd86e8b359611
|
||||
Author: Cameron Nemo <camerontnorman@gmail.com>
|
||||
Date: Wed Nov 28 19:42:29 2018 -0800
|
||||
|
||||
lxc-usernsexec: fix default map functionality
|
||||
|
||||
* Place NULL bytes at the end of strings so that
|
||||
lxc_safe_ulong() can parse them correctly
|
||||
|
||||
* Only free the newly created id_map on error,
|
||||
to avoid passing garbage to lxc_map_ids()
|
||||
|
||||
Signed-off-by: Cameron Nemo <camerontnorman@gmail.com>
|
||||
|
||||
diff --git src/lxc/cmd/lxc_usernsexec.c src/lxc/cmd/lxc_usernsexec.c
|
||||
index 10557dd5..ab0dffcf 100644
|
||||
--- src/lxc/cmd/lxc_usernsexec.c
|
||||
+++ src/lxc/cmd/lxc_usernsexec.c
|
||||
@@ -200,6 +200,7 @@ static int read_default_map(char *fnam, int which, char *user)
|
||||
{
|
||||
size_t len;
|
||||
char *p1, *p2;
|
||||
+ unsigned long ul1, ul2;
|
||||
FILE *fin;
|
||||
int ret = -1;
|
||||
size_t sz = 0;
|
||||
@@ -224,37 +225,42 @@ static int read_default_map(char *fnam, int which, char *user)
|
||||
if (!p2)
|
||||
continue;
|
||||
|
||||
- newmap = malloc(sizeof(*newmap));
|
||||
- if (!newmap)
|
||||
- goto on_error;
|
||||
+ line[strlen(line) - 1] = '\0';
|
||||
+ *p2 = '\0';
|
||||
|
||||
- ret = lxc_safe_ulong(p1 + 1, &newmap->hostid);
|
||||
+ ret = lxc_safe_ulong(p1 + 1, &ul1);
|
||||
if (ret < 0)
|
||||
- goto on_error;
|
||||
+ break;
|
||||
|
||||
- ret = lxc_safe_ulong(p2 + 1, &newmap->range);
|
||||
+ ret = lxc_safe_ulong(p2 + 1, &ul2);
|
||||
if (ret < 0)
|
||||
- goto on_error;
|
||||
+ break;
|
||||
+
|
||||
+ ret = -1;
|
||||
+ newmap = malloc(sizeof(*newmap));
|
||||
+ if (!newmap)
|
||||
+ break;
|
||||
|
||||
newmap->nsid = 0;
|
||||
newmap->idtype = which;
|
||||
+ newmap->hostid = ul1;
|
||||
+ newmap->range = ul2;
|
||||
|
||||
- ret = -1;
|
||||
tmp = malloc(sizeof(*tmp));
|
||||
- if (!tmp)
|
||||
- goto on_error;
|
||||
+ if (!tmp) {
|
||||
+ free(newmap);
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
tmp->elem = newmap;
|
||||
lxc_list_add_tail(&active_map, tmp);
|
||||
+
|
||||
+ ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
- ret = 0;
|
||||
-
|
||||
-on_error:
|
||||
fclose(fin);
|
||||
free(line);
|
||||
- free(newmap);
|
||||
|
||||
return ret;
|
||||
}
|
|
@ -3,7 +3,7 @@ _desc="Linux Containers"
|
|||
|
||||
pkgname=lxc
|
||||
version=3.0.3
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
configure_args="--enable-doc --enable-seccomp
|
||||
--enable-capabilities --enable-apparmor --with-distro=none
|
||||
|
|
Loading…
Reference in New Issue