Free previously allocated memory if realloc fails.
Signed-off-by: S.Çağlar Onur <[email protected]>
---
src/lxc/lxc_usernsexec.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/lxc/lxc_usernsexec.c b/src/lxc/lxc_usernsexec.c
index 9416f27..2957dd5 100644
--- a/src/lxc/lxc_usernsexec.c
+++ b/src/lxc/lxc_usernsexec.c
@@ -201,6 +201,7 @@ static int read_default_map(char *fnam, char which, char
*username)
if (line)
free(line);
fclose(fin);
+ free(newmap);
return 0;
}
@@ -241,6 +242,7 @@ static int run_cmd(char **argv)
static int map_child_uids(int pid, struct id_map *map)
{
char **uidargs = NULL, **gidargs = NULL;
+ char **newuidargs = NULL, **newgidargs = NULL;
int i, nuargs = 2, ngargs = 2;
struct id_map *m;
@@ -263,9 +265,12 @@ static int map_child_uids(int pid, struct id_map *map)
for (m=map; m; m = m->next) {
if (m->which == 'b' || m->which == 'u') {
nuargs += 3;
- uidargs = realloc(uidargs, (nuargs+1) *
sizeof(*uidargs));
- if (!uidargs)
+ newuidargs = realloc(uidargs, (nuargs+1) *
sizeof(*uidargs));
+ if (!newuidargs) {
+ free(uidargs)
return -1;
+ }
+ uidargs = newuidargs;
uidargs[nuargs - 3] = malloc(21);
uidargs[nuargs - 2] = malloc(21);
uidargs[nuargs - 1] = malloc(21);
@@ -278,9 +283,12 @@ static int map_child_uids(int pid, struct id_map *map)
}
if (m->which == 'b' || m->which == 'g') {
ngargs += 3;
- gidargs = realloc(gidargs, (ngargs+1) *
sizeof(*gidargs));
- if (!gidargs)
+ newgidargs = realloc(gidargs, (ngargs+1) *
sizeof(*gidargs));
+ if (!newgidargs){
+ free(gidargs);
return -1;
+ }
+ gidargs = newgidargs;
gidargs[ngargs - 3] = malloc(21);
gidargs[ngargs - 2] = malloc(21);
gidargs[ngargs - 1] = malloc(21);
--
1.8.3.2
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxc-devel