Module: wine Branch: master Commit: 62df7633e5328ff94295ceabe5fa45e48f34ceb7 URL: https://gitlab.winehq.org/wine/wine/-/commit/62df7633e5328ff94295ceabe5fa45e...
Author: Elizabeth Figura zfigura@codeweavers.com Date: Thu Jun 13 22:20:29 2024 -0500
ntdll: Do not set io->Status at the end of sock_ioctl().
The only cases this affects are Wine-internal sockopt ioctls, and ws2_32 does not read back the IOSB status for those.
---
dlls/ntdll/unix/socket.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 587faf51ccf..78f24a081c3 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1485,6 +1485,10 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc TRACE( "handle %p, code %#x, in_buffer %p, in_size %u, out_buffer %p, out_size %u\n", handle, code, in_buffer, in_size, out_buffer, out_size );
+ /* many of the below internal codes return success but don't completely + * fill the iosb or signal completion; such sockopts are only called + * synchronously by ws2_32 */ + switch (code) { case IOCTL_AFD_BIND: @@ -2528,7 +2532,5 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc
if (needs_close) close( fd );
- if (status != STATUS_PENDING && !NT_ERROR(status)) io->Status = status; - return status; }