diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index 388a2a9c398..fb71de4e087 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -1904,7 +1904,7 @@ static BOOL INET_QueryOptionHelper(BOOL bIsUnicode, HINTERNET hInternet, DWORD d TRACE("INTERNET_OPTION_USER_AGENT\n"); - if (lpwhh->htype != INTERNET_HANDLE_TYPE_INTERNET) + if (!lpwhh || lpwhh->htype != INTERNET_HANDLE_TYPE_INTERNET) { INTERNET_SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE); return FALSE; diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c index 2f88f586ceb..8eb7cc63f32 100644 --- a/dlls/wininet/tests/internet.c +++ b/dlls/wininet/tests/internet.c @@ -149,6 +149,12 @@ static void test_InternetQueryOptionA(void) hinet = InternetOpenA(useragent,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL, 0); ok((hinet != 0x0),"InternetOpen Failed\n"); + SetLastError(0xdeadbeef); + retval=InternetQueryOptionA(NULL,INTERNET_OPTION_USER_AGENT,NULL,&len); + err=GetLastError(); + ok(retval == 0,"Got wrong return value %d\n",retval); + ok(err == ERROR_INTERNET_INCORRECT_HANDLE_TYPE, "Got wrong error code%d\n",err); + SetLastError(0xdeadbeef); len=strlen(useragent)+1; retval=InternetQueryOptionA(hinet,INTERNET_OPTION_USER_AGENT,NULL,&len);