Module: wine Branch: master Commit: 59ab0cf362d764f978ab2c6d291b647e00a7c8ba URL: http://source.winehq.org/git/wine.git/?a=commit;h=59ab0cf362d764f978ab2c6d29...
Author: Rob Shearman rob@codeweavers.com Date: Thu Jan 31 14:47:25 2008 +0000
wininet: HTTP_Connect should fail if a NULL or empty hostname is passed in.
Add tests for these circumstances.
---
dlls/wininet/http.c | 6 ++++++ dlls/wininet/tests/http.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 16e1ec7..65b86fb 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -2795,6 +2795,12 @@ HINTERNET HTTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName,
TRACE("-->\n");
+ if (!lpszServerName || !lpszServerName[0]) + { + INTERNET_SetLastError(ERROR_INVALID_PARAMETER); + goto lerror; + } + assert( hIC->hdr.htype == WH_HINIT );
lpwhs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WININETHTTPSESSIONW)); diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c index 457a65f..8bb7cca 100644 --- a/dlls/wininet/tests/http.c +++ b/dlls/wininet/tests/http.c @@ -929,9 +929,19 @@ static void InternetOpenRequest_test(void) session = InternetOpenA("Wine Regression Test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); ok(session != NULL ,"Unable to open Internet session\n");
+ connect = InternetConnectA(session, NULL, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, + INTERNET_SERVICE_HTTP, 0, 0); + ok(connect == NULL, "InternetConnectA should have failed\n"); + ok(GetLastError() == ERROR_INVALID_PARAMETER, "InternetConnectA with NULL server named should have failed with ERROR_INVALID_PARAMETER instead of %d\n", GetLastError()); + + connect = InternetConnectA(session, "", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, + INTERNET_SERVICE_HTTP, 0, 0); + ok(connect == NULL, "InternetConnectA should have failed\n"); + ok(GetLastError() == ERROR_INVALID_PARAMETER, "InternetConnectA with blank server named should have failed with ERROR_INVALID_PARAMETER instead of %d\n", GetLastError()); + connect = InternetConnectA(session, "winehq.org", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); - ok(connect != NULL, "Unable to connect to http://winehq.org%5Cn"); + ok(connect != NULL, "Unable to connect to http://winehq.org with error %d\n", GetLastError());
request = HttpOpenRequestA(connect, NULL, "/", NULL, NULL, types, INTERNET_FLAG_NO_CACHE_WRITE, 0); if (!request && GetLastError() == ERROR_INTERNET_NAME_NOT_RESOLVED)