From: David Goulet Date: Fri, 30 Jan 2015 20:18:40 +0000 (-0500) Subject: Fix: check r < 0 before checking errno X-Git-Tag: tor-0.2.6.3-alpha~94^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c41f120481b7b14fcf0ef3aaf78d84f47178cb7;p=thirdparty%2Ftor.git Fix: check r < 0 before checking errno Signed-off-by: David Goulet --- diff --git a/src/common/compat_threads.c b/src/common/compat_threads.c index ff8dc1ca61..15648d2851 100644 --- a/src/common/compat_threads.c +++ b/src/common/compat_threads.c @@ -174,7 +174,7 @@ pipe_drain(int fd) do { r = read_ni(fd, buf, sizeof(buf)); } while (r > 0); - if (errno != EAGAIN) + if (r < 0 && errno != EAGAIN) return -1; /* A value of r = 0 means EOF on the fd so successfully drained. */ return 0; @@ -198,7 +198,7 @@ sock_drain(tor_socket_t fd) do { r = recv_ni(fd, buf, sizeof(buf), 0); } while (r > 0); - if (!ERRNO_IS_EAGAIN(tor_socket_errno(fd))) + if (r < 0 && !ERRNO_IS_EAGAIN(tor_socket_errno(fd))) return -1; /* A value of r = 0 means EOF on the fd so successfully drained. */ return 0;