From 53e1a761be8d338cd957870bc1e48a8c15d7d2c0 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 15 Aug 2006 16:28:08 -0700 Subject: 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 --- connect.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'connect.c') diff --git a/connect.c b/connect.c index 4422a0d8d3..b9c222085e 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; } -- cgit v1.2.3