mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-18 15:18:12 +00:00
ws2_32: Check for valid socket in WSAGetOverlappedResult().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
This commit is contained in:
parent
94dc5714ac
commit
5a8ccc15a2
|
@ -3626,6 +3626,12 @@ BOOL WINAPI WSAGetOverlappedResult( SOCKET s, LPWSAOVERLAPPED lpOverlapped,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (!socket_list_find( s ))
|
||||
{
|
||||
SetLastError( WSAENOTSOCK );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
status = lpOverlapped->Internal;
|
||||
if (status == STATUS_PENDING)
|
||||
{
|
||||
|
|
|
@ -11848,6 +11848,7 @@ static void test_WSAGetOverlappedResult(void)
|
|||
NTSTATUS status;
|
||||
unsigned int i;
|
||||
SOCKET s;
|
||||
HANDLE h;
|
||||
BOOL ret;
|
||||
|
||||
static const NTSTATUS ranges[][2] =
|
||||
|
@ -11862,8 +11863,20 @@ static void test_WSAGetOverlappedResult(void)
|
|||
{0xd0070000, 0xd0080000},
|
||||
};
|
||||
|
||||
WSASetLastError(0xdeadbeef);
|
||||
ret = WSAGetOverlappedResult(0xdeadbeef, &overlapped, &size, FALSE, &flags);
|
||||
ok(!ret, "got %d.\n", ret);
|
||||
ok(WSAGetLastError() == WSAENOTSOCK, "got %u.\n", WSAGetLastError());
|
||||
|
||||
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
|
||||
ret = DuplicateHandle(GetCurrentProcess(), (HANDLE)s, GetCurrentProcess(), &h, 0, FALSE, DUPLICATE_SAME_ACCESS);
|
||||
ok(ret, "got %d.\n", ret);
|
||||
ret = WSAGetOverlappedResult((SOCKET)h, &overlapped, &size, FALSE, &flags);
|
||||
ok(!ret, "got %d.\n", ret);
|
||||
ok(WSAGetLastError() == WSAENOTSOCK, "got %u.\n", WSAGetLastError());
|
||||
CloseHandle(h);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(ranges); ++i)
|
||||
{
|
||||
for (status = ranges[i][0]; status < ranges[i][1]; ++status)
|
||||
|
|
Loading…
Reference in a new issue