multi: fix multi_sock handling of select_bits

- OR the event bitmask to data->state.select_bits instead of overwriting
  them. They are cleared again on use.

Reported-by: 5533asdg on github
Fixes #12971
Closes #12972
This commit is contained in:
Stefan Eissing 2024-02-22 09:01:06 +01:00 committed by Daniel Stenberg
parent 93d8e3564e
commit f274fc5c68
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -3243,7 +3243,7 @@ static CURLMcode multi_socket(struct Curl_multi *multi,
if(data->conn && !(data->conn->handler->flags & PROTOPT_DIRLOCK))
/* set socket event bitmask if they're not locked */
data->state.select_bits = (unsigned char)ev_bitmask;
data->state.select_bits |= (unsigned char)ev_bitmask;
Curl_expire(data, 0, EXPIRE_RUN_NOW);
}