Quoting S.Çağlar Onur (cag...@10ur.org): > Free previously allocated memory if realloc fails. > > Signed-off-by: S.Çağlar Onur <cag...@10ur.org>
Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> Note that read_default_map() is not doing all it was meant to do. I'll apply your patch, then clean that up. > --- > 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 > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ 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 Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel