[PATCH] winhttp: Don't crash setting up secure proxy

Andrew Eikum aeikum at codeweavers.com
Fri Mar 8 11:52:01 CST 2019


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---

The crash happens when calling secure_proxy_connect with
request->netconn==NULL.

 dlls/winhttp/request.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index af484cccf8..d3d9f572f2 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -1673,6 +1673,9 @@ static BOOL open_connection( struct request *request )
         }
         netconn_set_timeout( netconn, TRUE, request->send_timeout );
         netconn_set_timeout( netconn, FALSE, request->receive_response_timeout );
+
+        request->netconn = netconn;
+
         if (is_secure)
         {
             if (connect->session->proxy_server &&
@@ -1680,6 +1683,7 @@ static BOOL open_connection( struct request *request )
             {
                 if (!secure_proxy_connect( request ))
                 {
+                    request->netconn = NULL;
                     heap_free( addressW );
                     netconn_close( netconn );
                     return FALSE;
@@ -1693,13 +1697,13 @@ static BOOL open_connection( struct request *request )
                 !netconn_secure_connect( netconn, connect->hostname, request->security_flags,
                                          &request->cred_handle, request->check_revocation ))
             {
+                request->netconn = NULL;
                 heap_free( addressW );
                 netconn_close( netconn );
                 return FALSE;
             }
         }
 
-        request->netconn = netconn;
         send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER, addressW, strlenW(addressW) + 1 );
     }
     else
-- 
2.21.0




More information about the wine-devel mailing list