From 32334704e882eb225b4738a34d46c6407af12514 Mon Sep 17 00:00:00 2001 From: Kimmo Myllyvirta Date: Wed, 12 Jul 2017 03:17:18 +0000 Subject: [PATCH] ws2_32: Set return size when calling WSAIoctl with WS_SIO_GET_EXTENSION_FUNCTION_POINTER. Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Alexandre Julliard --- dlls/ws2_32/socket.c | 1 + dlls/ws2_32/tests/sock.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index f212ec22e12..3f4691f02b7 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -4907,6 +4907,7 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID { TRACE("-> got %s\n", guid_funcs[i].name); *(void **)out_buff = guid_funcs[i].func_ptr; + total = sizeof(void *); break; } diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index efe10b32fde..e975ea43feb 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -7677,6 +7677,7 @@ static void test_ConnectEx(void) goto end; } + bytesReturned = 0xdeadbeef; iret = WSAIoctl(connector, SIO_GET_EXTENSION_FUNCTION_POINTER, &connectExGuid, sizeof(connectExGuid), &pConnectEx, sizeof(pConnectEx), &bytesReturned, NULL, NULL); if (iret) { @@ -7684,6 +7685,8 @@ static void test_ConnectEx(void) goto end; } + ok(bytesReturned == sizeof(pConnectEx), "expected sizeof(pConnectEx), got %u\n", bytesReturned); + bret = pConnectEx(INVALID_SOCKET, (struct sockaddr*)&address, addrlen, NULL, 0, &bytesReturned, &overlapped); ok(bret == FALSE && WSAGetLastError() == WSAENOTSOCK, "ConnectEx on invalid socket " "returned %d + errno %d\n", bret, WSAGetLastError());