From 59ab0cf362d764f978ab2c6d291b647e00a7c8ba Mon Sep 17 00:00:00 2001 From: Rob Shearman Date: Thu, 31 Jan 2008 14:47:25 +0000 Subject: [PATCH] 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 deletion(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 16e1ec71c30..65b86fb2d61 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 457a65ffd97..8bb7cca0743 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\n"); + 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) -- 2.11.4.GIT