https://bugs.winehq.org/show_bug.cgi?id=49782
Paul Gofman pgofman@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |pgofman@codeweavers.com
--- Comment #6 from Paul Gofman pgofman@codeweavers.com --- I've tested the game. The failing sequence is:
1. Application calls WaitForMultipleObjects(). 2. select wineserver call in ntdll/unix/server.c:server_select() first gets STATUS_KERNEL_APC for APC_ASYNC_IO/. 3. The async IO callback is WS2_async_recv, which currently calls into ntdll through syscall thunks. This effectively resets syscall frame to NULL. 4. next select wineserver call returns STATUS_USER_APC. invoke_apc() called from server_wait() crashes because of NULL syscall frame.
The problem is in step 3, the async callbacks are not supposed to make calls through syscall thunks. AFAIK the move of those callbacks into ntdll.so is being worked on, this bug should be fixed once that is complete.