On Tue, 28 Jul 2009, Bert Wesarg wrote: > On Tue, Jul 28, 2009 at 08:08, Daniel Barkalow<barkalow@xxxxxxxxxxxx> wrote: > > +static struct child_process *get_shim(struct transport *transport) > > +{ > > + struct shim_data *data = transport->data; > > + if (!data->shim) { > > + struct strbuf buf = STRBUF_INIT; > > + struct child_process *shim = xcalloc(1, sizeof(*shim)); > > + shim->in = -1; > > + shim->out = -1; > > + shim->err = 0; > > + shim->argv = xcalloc(4, sizeof(*shim->argv)); > > + strbuf_addf(&buf, "shim-%s", data->name); > > + shim->argv[0] = buf.buf; > > + shim->argv[1] = transport->remote->name; > > + shim->argv[2] = transport->url; > > + shim->git_cmd = 1; > > + start_command(shim); > > + data->shim = shim; > > + } > > + return data->shim; > > +} > > + > > +static int disconnect_shim(struct transport *transport) > > +{ > > + struct shim_data *data = transport->data; > > + if (data->shim) { > > + write(data->shim->in, "\n", 1); > > + close(data->shim->in); > > + finish_command(data->shim); > > + free(data->shim->argv); > Does this leak data->shim->argv[0] (Ie "shim-%s")? Yes, I guess it would. I think it's time to look up how to run tests with valgrind... Thanks. -Daniel *This .sig left intentionally blank*