ntdll: Preserve syscall frame when calling async IO system APC.
commit8b8ddffa2152832908ced42191fa19dcb64d900e
authorPaul Gofman <pgofman@codeweavers.com>
Wed, 23 Dec 2020 11:51:03 +0000 (23 14:51 +0300)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 23 Dec 2020 21:07:50 +0000 (23 22:07 +0100)
treee9fb4e14673252532d83f0f8468dfb12a7b087b8
parenta23c54288ec975fde4d08a4759f227c9278cde60
ntdll: Preserve syscall frame when calling async IO system APC.

The frame can currently be reset from ws2_32.dll async IO callbacks
which are still in the user part and are calling 'syscall' functions.
If the user APC is processed after that during the same call to
server_select(), the call_user_apc_dispatcher() faults.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49782
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/ntdll/unix/server.c
dlls/ntdll/unix/signal_arm.c
dlls/ntdll/unix/signal_arm64.c
dlls/ntdll/unix/signal_i386.c
dlls/ntdll/unix/signal_x86_64.c
dlls/ntdll/unix/unix_private.h