wininet: Avoid a crash on an invalid handle in InternetQueryOption.

This commit is contained in:
Hans Leidekker 2008-06-29 16:01:45 +02:00 committed by Alexandre Julliard
parent f1dc1bb070
commit 01e21366cb
2 changed files with 7 additions and 1 deletions

View File

@ -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;

View File

@ -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);