Fabian Maurer : server: Check socket flags after all sockets got processed.
Module: wine Branch: master Commit: 13928e0855358f469543a0ceee56e5fa8dfa5175 URL: https://gitlab.winehq.org/wine/wine/-/commit/13928e0855358f469543a0ceee56e5f... Author: Fabian Maurer <dark.shadow4(a)web.de> Date: Thu Nov 30 22:50:57 2023 +0100 server: Check socket flags after all sockets got processed. In rare cases we get an event during the second iteration of the loop, changing the first element. This would lead to an assertion later. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55054 --- server/sock.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/sock.c b/server/sock.c index bd441d822a8..84c0d4a4931 100644 --- a/server/sock.c +++ b/server/sock.c @@ -3509,7 +3509,10 @@ static void poll_socket( struct sock *poll_sock, struct async *async, int exclus req->sockets[i].flags |= AFD_POLL_CONNECT_ERR; req->sockets[i].status = sock_get_ntstatus( sock->errors[AFD_POLL_BIT_CONNECT_ERR] ); } + } + for (i = 0; i < count; ++i) + { if (req->sockets[i].flags) signaled = TRUE; }
participants (1)
-
Alexandre Julliard