Re: [PATCH 1/3 v2] Add support for external programs for handling native fetches
On Tue, Jul 28, 2009 at 08:08, Daniel Barkalow<barkalow@iabervon.org> wrote:
Show 29 quoted lines
> +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")?
Bert
Show 5 quoted lines
> + free(data->shim);
> + transport->data = NULL;
> + }
> + return 0;
> +}