Skip to content

Commit

Permalink
transport-helper: check status code of finish_command
Browse files Browse the repository at this point in the history
Previously the status code of all helpers were ignored, allowing
errors that occur to go unnoticed if the error text output by the
helper is not noticed.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Sverre Rabbelier authored and Junio C Hamano committed Jul 19, 2011
1 parent d2e73c6 commit cc56732
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions transport-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ static int disconnect_helper(struct transport *transport)
{
struct helper_data *data = transport->data;
struct strbuf buf = STRBUF_INIT;
int res = 0;

if (data->helper) {
if (debug)
Expand All @@ -220,13 +221,13 @@ static int disconnect_helper(struct transport *transport)
close(data->helper->in);
close(data->helper->out);
fclose(data->out);
finish_command(data->helper);
res = finish_command(data->helper);
free((char *)data->helper->argv[0]);
free(data->helper->argv);
free(data->helper);
data->helper = NULL;
}
return 0;
return res;
}

static const char *unsupported_options[] = {
Expand Down Expand Up @@ -304,12 +305,13 @@ static void standard_options(struct transport *t)

static int release_helper(struct transport *transport)
{
int res = 0;
struct helper_data *data = transport->data;
free_refspec(data->refspec_nr, data->refspecs);
data->refspecs = NULL;
disconnect_helper(transport);
res = disconnect_helper(transport);
free(transport->data);
return 0;
return res;
}

static int fetch_with_fetch(struct transport *transport,
Expand Down Expand Up @@ -415,8 +417,11 @@ static int fetch_with_import(struct transport *transport,
sendline(data, &buf);
strbuf_reset(&buf);
}
disconnect_helper(transport);
finish_command(&fastimport);
if (disconnect_helper(transport))
die("Error while disconnecting helper");
if (finish_command(&fastimport))
die("Error while running fast-import");

free(fastimport.argv);
fastimport.argv = NULL;

Expand Down Expand Up @@ -760,8 +765,10 @@ static int push_refs_with_export(struct transport *transport,
die("Couldn't run fast-export");

data->no_disconnect_req = 1;
finish_command(&exporter);
disconnect_helper(transport);
if (finish_command(&exporter))
die("Error while running fast-export");
if (disconnect_helper(transport))
die("Error while disconnecting helper");
return 0;
}

Expand Down

0 comments on commit cc56732

Please sign in to comment.