BUG/MEDIUM: fd: Don't fd_stop_recv() a fd we don't own.

In fd_takeover(), if we failed to grab the fd, when a double-width
compare-and-swap is not implemented, do not call fd_stop_recv() on the
fd, it is not ours and may be used by another thread.
This commit is contained in:
Olivier Houchard 2020-06-17 20:32:34 +02:00
parent f86a106f68
commit 8d7b517824

View File

@ -362,7 +362,8 @@ end:
* the fd is polled by the thread that used to own it, the new thread
* is supposed to call subscribe() later, to activate polling.
*/
fd_stop_recv(fd);
if (ret != -1)
fd_stop_recv(fd);
return ret;
#else
unsigned long old_masks[2];