Bruno Jesus : wininet: Fix InternetGetConnectedStateEx[A|W].
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Oct 28 02:24:35 CDT 2014
Module: wine
Branch: master
Commit: 5e13e7f809075f28c0a8fb9fe7d3aa6cf0f50e80
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e13e7f809075f28c0a8fb9fe7d3aa6cf0f50e80
Author: Bruno Jesus <00cpxxx at gmail.com>
Date: Mon Oct 27 20:41:02 2014 -0200
wininet: Fix InternetGetConnectedStateEx[A|W].
---
dlls/wininet/internet.c | 12 ++++++++++--
dlls/wininet/tests/internet.c | 14 --------------
2 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 2a2876c..4847ca0 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -1276,13 +1276,21 @@ BOOL WINAPI InternetGetConnectedStateExW(LPDWORD lpdwStatus, LPWSTR lpszConnecti
/* Must be zero */
if(dwReserved)
- return FALSE;
+ return FALSE;
if (lpdwStatus) {
WARN("always returning LAN connection.\n");
*lpdwStatus = INTERNET_CONNECTION_LAN;
}
- return LoadStringW(WININET_hModule, IDS_LANCONNECTION, lpszConnectionName, dwNameLen) > 0;
+
+ /* When the buffer size is zero LoadStringW fills the buffer with a pointer to
+ * the resource, avoid it as we must not change the buffer in this case */
+ if(lpszConnectionName && dwNameLen) {
+ *lpszConnectionName = '\0';
+ LoadStringW(WININET_hModule, IDS_LANCONNECTION, lpszConnectionName, dwNameLen);
+ }
+
+ return TRUE;
}
diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c
index fc965e2..1548615 100644
--- a/dlls/wininet/tests/internet.c
+++ b/dlls/wininet/tests/internet.c
@@ -1525,19 +1525,16 @@ static void test_InternetGetConnectedStateExA(void)
trace("Internet Connection: Flags 0x%02x - Name '%s'\n", flags, buffer);
res = pInternetGetConnectedStateExA(NULL, NULL, 0, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
flags = 0;
res = pInternetGetConnectedStateExA(&flags, NULL, 0, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
buffer[0] = 0;
flags = 0;
res = pInternetGetConnectedStateExA(&flags, buffer, 0, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
ok(!buffer[0], "Buffer must not change, got %02X\n", buffer[0]);
@@ -1558,7 +1555,6 @@ todo_wine
flags = 0;
res = pInternetGetConnectedStateExA(&flags, NULL, sizeof(buffer), 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
@@ -1580,7 +1576,6 @@ todo_wine
buffer[0] = 0;
flags = 0;
res = pInternetGetConnectedStateExA(&flags, buffer, 1, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
ok(strlen(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenA(buffer));
@@ -1595,10 +1590,8 @@ todo_wine
flags = 0;
buffer[0] = 0xDE;
res = pInternetGetConnectedStateExA(&flags, buffer, 1, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
-todo_wine
ok(strlen(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenA(buffer));
}
@@ -1621,12 +1614,10 @@ static void test_InternetGetConnectedStateExW(void)
trace("Internet Connection: Flags 0x%02x - Name '%s'\n", flags, wine_dbgstr_w(buffer));
res = pInternetGetConnectedStateExW(NULL, NULL, 0, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
flags = 0;
res = pInternetGetConnectedStateExW(&flags, NULL, 0, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
@@ -1635,7 +1626,6 @@ todo_wine
res = pInternetGetConnectedStateExW(&flags, buffer, 0, 0);
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
-todo_wine
ok(!buffer[0], "Buffer must not change, got %02X\n", buffer[0]);
buffer[0] = 0;
@@ -1654,7 +1644,6 @@ todo_wine
flags = 0;
res = pInternetGetConnectedStateExW(&flags, NULL, sizeof(buffer) / sizeof(buffer[0]), 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
@@ -1676,7 +1665,6 @@ todo_wine
buffer[0] = 0;
flags = 0;
res = pInternetGetConnectedStateExW(&flags, buffer, 1, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
ok(lstrlenW(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenW(buffer));
@@ -1691,10 +1679,8 @@ todo_wine
buffer[0] = 0xDEAD;
flags = 0;
res = pInternetGetConnectedStateExW(&flags, buffer, 1, 0);
-todo_wine
ok(res == TRUE, "Expected TRUE, got %d\n", res);
ok(flags, "Expected at least one flag set\n");
-todo_wine
ok(lstrlenW(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenW(buffer));
}
More information about the wine-cvs
mailing list