diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-29 19:08:51 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-29 19:08:51 -0700 |
commit | 144dfc5c63dfe829aafdb2cba3bd549600b6008b (patch) | |
tree | 0f8f64b28722ff123c942552ec59265f330a9c0f /run-command.c | |
parent | 3c3e0b3c41f4c975828cf51d661614e45bf80dc0 (diff) | |
parent | a111eb7808bfdb90286e54b9ccdaea4f3bec3102 (diff) | |
download | git-144dfc5c63dfe829aafdb2cba3bd549600b6008b.tar.gz git-144dfc5c63dfe829aafdb2cba3bd549600b6008b.tar.xz |
Merge branch 'jn/run-command-error-failure' into maint
* 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 f91e446c8..70e8a249d 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 |