ws2_32: Handle NULL argument in inet_addr.
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index e7a5846..1d007a9 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -2175,6 +2175,7 @@
*/
WS_u_long WINAPI WS_inet_addr(const char *cp)
{
+ if (!cp) return INADDR_NONE;
return inet_addr(cp);
}
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 970e27a..c5bf766 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -1491,7 +1491,7 @@
closesocket(server_socket);
}
-static void test_extendedSocketOptions()
+static void test_extendedSocketOptions(void)
{
WSADATA wsa;
SOCKET sock;
@@ -1565,7 +1565,7 @@
WSACleanup();
}
-static void test_getsockname()
+static void test_getsockname(void)
{
WSADATA wsa;
SOCKET sock;
@@ -1612,6 +1612,14 @@
WSACleanup();
}
+static void test_inet_addr(void)
+{
+ u_long addr;
+
+ addr = inet_addr(NULL);
+ ok(addr == INADDR_NONE, "inet_addr succeeded unexpectedly\n");
+}
+
/**************** Main program ***************/
START_TEST( sock )
@@ -1643,6 +1651,7 @@
test_select();
test_accept();
test_getsockname();
+ test_inet_addr();
Exit();
}