From: Junio C Hamano Date: Tue, 15 Aug 2006 23:28:08 +0000 (-0700) Subject: finish_connect(): thinkofix X-Git-Tag: v1.4.2.1~5 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=53e1a761be8d338cd957870bc1e48a8c15d7d2c0;p=git.git finish_connect(): thinkofix All but one callers have ignore the return value from this function, but the only caller, builtin-tar-tree.c::remote_tar(), assumed it returns non-zero on failure and zero on success. The implementation however was returning either the waited pid (which must be the same as its input) or -1 (an error). Fix this thinko, while getting rid of an assignment of return value from waitpid() into a variable of type int. Signed-off-by: Junio C Hamano --- diff --git a/connect.c b/connect.c index 4422a0d8d..b9c222085 100644 --- a/connect.c +++ b/connect.c @@ -737,14 +737,9 @@ int git_connect(int fd[2], char *url, const char *prog) int finish_connect(pid_t pid) { - int ret; - - for (;;) { - ret = waitpid(pid, NULL, 0); - if (!ret) - break; + while (waitpid(pid, NULL, 0) < 0) { if (errno != EINTR) - break; + return -1; } - return ret; + return 0; }