diff options
author | Alan Jenkins <alan.christopher.jenkins@gmail.com> | 2017-04-22 21:16:44 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-04-22 22:35:46 +0200 |
commit | be299a4dba0362940062f7f07c76862ecf226522 (patch) | |
tree | 334ad7fec4e9d609ff79f8553748cddbca681756 | |
parent | 4a8cf6c4044a1692b441b64a52d1750a92b798ee (diff) | |
download | curl-be299a4dba0362940062f7f07c76862ecf226522.tar.gz |
multi: clarify condition in curl_multi_wait
`if(nfds || extra_nfds) {` is followed by `malloc(nfds * ...)`.
If `extra_fs` could be non-zero when `nfds` was zero, then we have
`malloc(0)` which is allowed to return `NULL`. But, malloc returning
NULL can be confusing. In this code, the next line would treat the NULL
as an allocation failure.
It turns out, if `nfds` is zero then `extra_nfds` must also be zero.
The final value of `nfds` includes `extra_nfds`. So the test for
`extra_nfds` is redundant. It can only confuse the reader.
Closes #1439
-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 f16776033..26d5f1bd6 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1014,7 +1014,7 @@ CURLMcode curl_multi_wait(struct Curl_multi *multi, curlfds = nfds; /* number of internal file descriptors */ nfds += extra_nfds; /* add the externally provided ones */ - if(nfds || extra_nfds) { + if(nfds) { if(nfds > NUM_POLLS_ON_STACK) { ufds = malloc(nfds * sizeof(struct pollfd)); if(!ufds) |