[PATCH 2/2] ntdll: Don't set socket IO status after queuing async.

Paul Gofman pgofman at codeweavers.com
Thu Dec 16 13:56:02 CST 2021


Thanks for spotting all that.

On 12/16/21 22:43, Zebediah Figura (she/her) wrote:
>
>
>> @@ -1666,7 +1669,8 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE 
>> event, PIO_APC_ROUTINE apc, void *apc
>>                   io->Information = sizeof(*ws_linger);
>>               }
>>   -            return ret ? sock_errno_to_status( errno ) : 
>> STATUS_SUCCESS;
>> +            status = ret ? sock_errno_to_status( errno ) : 
>> STATUS_SUCCESS;
>> +            break;
>>           }
>>             case IOCTL_AFD_WINE_SET_SO_LINGER:
>
> And this might close "fd" twice.


I must be missing something but not sure how? 
IOCTL_AFD_WINE_SET_SO_LINGER and other similar cases return 
do_setsockopt() and fd is opened and closed inside do_setsockopt()?





More information about the wine-devel mailing list