winhttp: Test secure connections. Fix a crash when no response is returned.
This commit is contained in:
parent
0b19e8559f
commit
f732065c4c
|
@ -538,6 +538,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
|
||||||
else
|
else
|
||||||
headers = request->raw_headers;
|
headers = request->raw_headers;
|
||||||
|
|
||||||
|
if (!headers) return FALSE;
|
||||||
len = strlenW( headers ) * sizeof(WCHAR);
|
len = strlenW( headers ) * sizeof(WCHAR);
|
||||||
if (len + sizeof(WCHAR) > *buflen)
|
if (len + sizeof(WCHAR) > *buflen)
|
||||||
{
|
{
|
||||||
|
|
|
@ -525,6 +525,54 @@ static void test_WinHttpAddHeaders(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_secure_connection(void)
|
||||||
|
{
|
||||||
|
static const WCHAR google[] = {'w','w','w','.','g','o','o','g','l','e','.','c','o','m',0};
|
||||||
|
|
||||||
|
HANDLE ses, con, req;
|
||||||
|
DWORD size;
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
|
ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0);
|
||||||
|
ok(ses != NULL, "failed to open session %u\n", GetLastError());
|
||||||
|
|
||||||
|
con = WinHttpConnect(ses, google, 443, 0);
|
||||||
|
ok(con != NULL, "failed to open a connection %u\n", GetLastError());
|
||||||
|
|
||||||
|
/* try without setting WINHTTP_FLAG_SECURE */
|
||||||
|
req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, 0);
|
||||||
|
ok(req != NULL, "failed to open a request %u\n", GetLastError());
|
||||||
|
|
||||||
|
ret = WinHttpSendRequest(req, NULL, 0, NULL, 0, 0, 0);
|
||||||
|
ok(ret, "failed to send request %u\n", GetLastError());
|
||||||
|
|
||||||
|
ret = WinHttpReceiveResponse(req, NULL);
|
||||||
|
ok(!ret, "succeeded unexpectedly\n");
|
||||||
|
|
||||||
|
size = 0;
|
||||||
|
ret = WinHttpQueryHeaders(req, WINHTTP_QUERY_RAW_HEADERS_CRLF, NULL, NULL, &size, NULL);
|
||||||
|
ok(!ret, "succeeded unexpectedly\n");
|
||||||
|
|
||||||
|
WinHttpCloseHandle(req);
|
||||||
|
|
||||||
|
req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, WINHTTP_FLAG_SECURE);
|
||||||
|
ok(req != NULL, "failed to open a request %u\n", GetLastError());
|
||||||
|
|
||||||
|
ret = WinHttpSendRequest(req, NULL, 0, NULL, 0, 0, 0);
|
||||||
|
ok(ret, "failed to send request %u\n", GetLastError());
|
||||||
|
|
||||||
|
ret = WinHttpReceiveResponse(req, NULL);
|
||||||
|
ok(ret, "failed to receive response %u\n", GetLastError());
|
||||||
|
|
||||||
|
size = 0;
|
||||||
|
ret = WinHttpQueryHeaders(req, WINHTTP_QUERY_RAW_HEADERS_CRLF, NULL, NULL, &size, NULL);
|
||||||
|
ok(!ret, "succeeded unexpectedly\n");
|
||||||
|
|
||||||
|
WinHttpCloseHandle(req);
|
||||||
|
WinHttpCloseHandle(con);
|
||||||
|
WinHttpCloseHandle(ses);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST (winhttp)
|
START_TEST (winhttp)
|
||||||
{
|
{
|
||||||
test_OpenRequest();
|
test_OpenRequest();
|
||||||
|
@ -532,4 +580,5 @@ START_TEST (winhttp)
|
||||||
test_WinHttpTimeFromSystemTime();
|
test_WinHttpTimeFromSystemTime();
|
||||||
test_WinHttpTimeToSystemTime();
|
test_WinHttpTimeToSystemTime();
|
||||||
test_WinHttpAddHeaders();
|
test_WinHttpAddHeaders();
|
||||||
|
test_secure_connection();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue