Piotr Caban : wininet: Handle NULL req-> netconn in INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT query.

Alexandre Julliard julliard at winehq.org
Fri May 3 15:24:51 CDT 2013


Module: wine
Branch: master
Commit: 33d62f3f17fcd34e2ad172847ee5267fc71ed96e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=33d62f3f17fcd34e2ad172847ee5267fc71ed96e

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri May  3 15:19:22 2013 +0200

wininet: Handle NULL req->netconn in INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT query.

---

 dlls/wininet/http.c       |    3 +++
 dlls/wininet/tests/http.c |    7 +++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index e160d04..188259d 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -2125,6 +2125,9 @@ static DWORD HTTPREQ_QueryOption(object_header_t *hdr, DWORD option, void *buffe
     case INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT: {
         PCCERT_CONTEXT context;
 
+        if(!req->netconn)
+            return ERROR_INTERNET_INVALID_OPERATION;
+
         if(*size < sizeof(INTERNET_CERTIFICATE_INFOA)) {
             *size = sizeof(INTERNET_CERTIFICATE_INFOA);
             return ERROR_INSUFFICIENT_BUFFER;
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index bfa215b..264aee7 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -3354,6 +3354,13 @@ static void test_options(int port)
     ret = InternetQueryOption(req, INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO, &idsi, &size);
     ok(ret, "InternetQueryOption failed %u\n", GetLastError());
 
+    size = 0;
+    SetLastError(0xdeadbeef);
+    ret = InternetQueryOption(req, INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT, NULL, &size);
+    error = GetLastError();
+    ok(!ret, "InternetQueryOption succeeded\n");
+    ok(error == ERROR_INTERNET_INVALID_OPERATION, "expected ERROR_INTERNET_INVALID_OPERATION, got %u\n", error);
+
     /* INTERNET_OPTION_PROXY */
     SetLastError(0xdeadbeef);
     ret = InternetQueryOptionA(ses, INTERNET_OPTION_PROXY, NULL, NULL);




More information about the wine-cvs mailing list