On Fri, Feb 19, 2016 at 12:20:48PM -0500, Eric Sunshine wrote:
Show 17 quoted lines
> >>> + argv_array_pushl(&cp->args, "--path", sub->path, NULL);
> >>> + argv_array_pushl(&cp->args, "--name", sub->name, NULL);
> >>> + argv_array_pushl(&cp->args, "--url", strdup(url), NULL);
> >>
> >> No need to strdup() here; argv_array handles its own memory, so this
> >> just leaks (and if we were keeping it, it should be xstrdup(), of
> >> course).
> >
> > We cannot remove the strdup as the url is a local variable we read in from
> > git_config_get_string and the local variable is going out of scope before the
> > child process ends?
> >
> > I'll change it to xstrdup then.
>
> When Peff said "argv_array handles its own memory", he meant that it
> does xstrdup() itself, so there's no need for you to do so a second
> time manually (leaking a string as a consequence).