Skip to content

Commit

Permalink
Merge branch 'sb/run-command-fd-error-reporting'
Browse files Browse the repository at this point in the history
* sb/run-command-fd-error-reporting:
  run-command: be more informative about what failed
  • Loading branch information
Junio C Hamano committed Feb 7, 2013
2 parents f507784 + 939296c commit b5b56ea
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions run-command.c
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ int start_command(struct child_process *cmd)
int need_in, need_out, need_err;
int fdin[2], fdout[2], fderr[2];
int failed_errno = failed_errno;
char *str;

/*
* In case of errors we must keep the promise to close FDs
Expand All @@ -286,6 +287,7 @@ int start_command(struct child_process *cmd)
failed_errno = errno;
if (cmd->out > 0)
close(cmd->out);
str = "standard input";
goto fail_pipe;
}
cmd->in = fdin[1];
Expand All @@ -301,6 +303,7 @@ int start_command(struct child_process *cmd)
close_pair(fdin);
else if (cmd->in)
close(cmd->in);
str = "standard output";
goto fail_pipe;
}
cmd->out = fdout[0];
Expand All @@ -318,9 +321,10 @@ int start_command(struct child_process *cmd)
close_pair(fdout);
else if (cmd->out)
close(cmd->out);
str = "standard error";
fail_pipe:
error("cannot create pipe for %s: %s",
cmd->argv[0], strerror(failed_errno));
error("cannot create %s pipe for %s: %s",
str, cmd->argv[0], strerror(failed_errno));
errno = failed_errno;
return -1;
}
Expand Down

0 comments on commit b5b56ea

Please sign in to comment.