diff options
author | Daniel Stenberg <daniel@haxx.se> | 2020-03-02 10:38:53 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-03-02 15:45:05 +0100 |
commit | cf7760ab521d1f9fc6a526df7dedfb7b0c3a6f17 (patch) | |
tree | bfc1b064900eb4fcc02ce85b74416fe4d32e628b | |
parent | 0caae3c4be47c7859eb1f26ffa7a0cf4b5a82160 (diff) | |
download | curl-cf7760ab521d1f9fc6a526df7dedfb7b0c3a6f17.tar.gz |
multi_wait: stop loop when sread() returns zero
It's unclear why it would ever return zero here, but this change fixes
Robert's problem and it shouldn't loop forever...
Reported-by: Robert Dunaj
Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html
Closes #5019
-rw-r--r-- | lib/multi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c index ef86f7c22..cef2805c8 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1199,7 +1199,7 @@ static CURLMcode Curl_multi_wait(struct Curl_multi *multi, data from it until it receives an error (except EINTR). In normal cases it will get EAGAIN or EWOULDBLOCK when there is no more data, breaking the loop. */ - if(sread(multi->wakeup_pair[0], buf, sizeof(buf)) < 0) { + if(sread(multi->wakeup_pair[0], buf, sizeof(buf)) <= 0) { #ifndef USE_WINSOCK if(EINTR == SOCKERRNO) continue; |