diff options
| author | Junio C Hamano <gitster@pobox.com> | 2011-05-06 11:01:04 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2011-05-06 11:01:04 -0700 |
| commit | 3970fc5512ac52e798579cf734957a2fac852cfd (patch) | |
| tree | a90d3cf7863dde8ea13a558a4edd0ff27aaa0577 /run-command.c | |
| parent | 606ee4be54b5ef3c8593a71b4b1bd6b4ee2d323d (diff) | |
| parent | a111eb7808bfdb90286e54b9ccdaea4f3bec3102 (diff) | |
Merge branch 'jn/run-command-error-failure'
* jn/run-command-error-failure:
run-command: handle short writes and EINTR in die_child
tests: check error message from run_command
Diffstat (limited to 'run-command.c')
| -rw-r--r-- | run-command.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/run-command.c b/run-command.c index f91e446c86..70e8a249d0 100644 --- a/run-command.c +++ b/run-command.c @@ -67,21 +67,24 @@ static int child_notifier = -1; static void notify_parent(void) { - ssize_t unused; - unused = write(child_notifier, "", 1); + /* + * execvp failed. If possible, we'd like to let start_command + * know, so failures like ENOENT can be handled right away; but + * otherwise, finish_command will still report the error. + */ + xwrite(child_notifier, "", 1); } static NORETURN void die_child(const char *err, va_list params) { char msg[4096]; - ssize_t unused; int len = vsnprintf(msg, sizeof(msg), err, params); if (len > sizeof(msg)) len = sizeof(msg); - unused = write(child_err, "fatal: ", 7); - unused = write(child_err, msg, len); - unused = write(child_err, "\n", 1); + write_in_full(child_err, "fatal: ", 7); + write_in_full(child_err, msg, len); + write_in_full(child_err, "\n", 1); exit(128); } #endif |
