On Tue, 2013-06-04 at 10:16 +0200, Marcus Meissner wrote: > 1020943 Uninitialized scalar variable > > After suggestion by Hans, do it in the helper ... especially > as the other external callers do not initialize schemes either.
I also said that you shouldn't touch the parameter on error :) The other callers pass a pointer to a user variable and the attached test confirms that native doesn't touch it.
diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c index 03de012..76d84fd 100644 --- a/dlls/winhttp/tests/winhttp.c +++ b/dlls/winhttp/tests/winhttp.c @@ -1859,7 +1859,7 @@ static void test_basic_request(int port, const WCHAR *verb, const WCHAR *path) { HINTERNET ses, con, req; char buffer[0x100]; - DWORD count, status, size; + DWORD count, status, size, supported, first, target; BOOL ret; ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0); @@ -1882,6 +1882,13 @@ static void test_basic_request(int port, const WCHAR *verb, const WCHAR *path) ok(ret, "failed to query status code %u\n", GetLastError()); ok(status == 200, "request failed unexpectedly %u\n", status); + supported = first = target = 0xffff; + ret = WinHttpQueryAuthSchemes(req, &supported, &first, &target); + ok(!ret, "unexpected success\n"); + ok(supported == 0xffff, "got %x\n", supported); + ok(first == 0xffff, "got %x\n", first); + ok(target == 0xffff, "got %x\n", target); + count = 0; memset(buffer, 0, sizeof(buffer)); ret = WinHttpReadData(req, buffer, sizeof buffer, &count); @@ -1900,7 +1907,7 @@ static void test_basic_authentication(int port) static const WCHAR userW[] = {'u','s','e','r',0}; static const WCHAR passW[] = {'p','w','d',0}; HINTERNET ses, con, req; - DWORD status, size, error; + DWORD status, size, error, supported, first, target; BOOL ret; ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0); @@ -1912,6 +1919,13 @@ static void test_basic_authentication(int port) req = WinHttpOpenRequest(con, NULL, authW, NULL, NULL, NULL, 0); ok(req != NULL, "failed to open a request %u\n", GetLastError()); + supported = first = target = 0xffff; + ret = WinHttpQueryAuthSchemes(req, &supported, &first, &target); + ok(!ret, "unexpected success\n"); + ok(supported == 0xffff, "got %x\n", supported); + ok(first == 0xffff, "got %x\n", first); + ok(target == 0xffff, "got %x\n", target); + ret = WinHttpSendRequest(req, NULL, 0, NULL, 0, 0, 0); ok(ret, "failed to send request %u\n", GetLastError());