diff options
author | Junio C Hamano <junkio@cox.net> | 2006-08-15 16:28:08 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-15 21:02:16 -0700 |
commit | 53e1a761be8d338cd957870bc1e48a8c15d7d2c0 (patch) | |
tree | eebe330e39ee4882629f92e04feeceaf89e26e45 | |
parent | 1d6249e609289940dca179b626fe4ae5433c90cc (diff) | |
download | git-53e1a761be8d338cd957870bc1e48a8c15d7d2c0.tar.gz git-53e1a761be8d338cd957870bc1e48a8c15d7d2c0.tar.xz |
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 <junkio@cox.net>
-rw-r--r-- | connect.c | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -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; } |