mirror of https://github.com/moparisthebest/curl
multi: fix crash in curl_multi_wait / curl_multi_poll
Appears to have been caused by 51c0ebc
(precedes 7.77.0) which added a
VALID_SOCK check to one of the loops through the sockets but not the
other.
Reported-by: sylgal@users.noreply.github.com
Authored-by: sylgal@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/7379
Closes https://github.com/curl/curl/pull/7389
This commit is contained in:
parent
b45d6e2c6a
commit
6a66f72829
|
@ -1180,7 +1180,7 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
long mask = 0;
|
long mask = 0;
|
||||||
#endif
|
#endif
|
||||||
if(bitmap & GETSOCK_READSOCK(i)) {
|
if((bitmap & GETSOCK_READSOCK(i)) && VALID_SOCK((sockbunch[i]))) {
|
||||||
s = sockbunch[i];
|
s = sockbunch[i];
|
||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
mask |= FD_READ|FD_ACCEPT|FD_CLOSE;
|
mask |= FD_READ|FD_ACCEPT|FD_CLOSE;
|
||||||
|
@ -1189,7 +1189,7 @@ static CURLMcode multi_wait(struct Curl_multi *multi,
|
||||||
ufds[nfds].events = POLLIN;
|
ufds[nfds].events = POLLIN;
|
||||||
++nfds;
|
++nfds;
|
||||||
}
|
}
|
||||||
if(bitmap & GETSOCK_WRITESOCK(i)) {
|
if((bitmap & GETSOCK_WRITESOCK(i)) && VALID_SOCK((sockbunch[i]))) {
|
||||||
s = sockbunch[i];
|
s = sockbunch[i];
|
||||||
#ifdef USE_WINSOCK
|
#ifdef USE_WINSOCK
|
||||||
mask |= FD_WRITE|FD_CONNECT|FD_CLOSE;
|
mask |= FD_WRITE|FD_CONNECT|FD_CLOSE;
|
||||||
|
|
Loading…
Reference in New Issue