From: Francois Gouget fgouget@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54799 --- dlls/wininet/internet.c | 4 ++++ dlls/wininet/tests/internet.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index 6155d60938a..665e339f920 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -1296,8 +1296,12 @@ BOOL WINAPI InternetGetConnectedStateExA(LPDWORD lpdwStatus, LPSTR lpszConnectio rc = InternetGetConnectedStateExW(lpdwStatus,lpwszConnectionName, dwNameLen, dwReserved); if (rc && lpwszConnectionName) + { WideCharToMultiByte(CP_ACP,0,lpwszConnectionName,-1,lpszConnectionName, dwNameLen, NULL, NULL); + /* Yes, blindly truncate double-byte characters */ + lpszConnectionName[dwNameLen - 1] = '\0'; + }
free(lpwszConnectionName); return rc; diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c index 1d717572aad..385c7c5f826 100644 --- a/dlls/wininet/tests/internet.c +++ b/dlls/wininet/tests/internet.c @@ -1684,7 +1684,7 @@ static void test_InternetGetConnectedStateExA(void) ok(res == TRUE, "Expected TRUE, got %d\n", res); ok(flags, "Expected at least one flag set\n");
- /* no space for complete string this time */ + /* no space for complete string this time, double-byte characters get truncated */ memset(buffer, 'z', sizeof(buffer) - 1); buffer[sizeof(buffer) - 1] = 0; flags = 0;