[PATCH] wininet: Always check if context can be deleted when freeing netconn.

Daniel Lehman dlehman25 at gmail.com
Sun Dec 2 21:49:24 CST 2018


Signed-off-by: Daniel Lehman <dlehman25 at gmail.com>
---
v3: supersedes https://source.winehq.org/patches/data/155145
fixes a memory leak where netcon_secure_connect_setup fails in the call to netconn_verify_cert
resulting in netconn->secure being FALSE, so it doesn't get freed in free_netconn

---
 dlls/wininet/netconnection.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index 4ad22177ee..615a43c2be 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -392,9 +392,9 @@ void free_netconn(netconn_t *netconn)
         heap_free(netconn->extra_buf);
         netconn->extra_buf = NULL;
         netconn->extra_len = 0;
-        if (SecIsValidHandle(&netconn->ssl_ctx))
-            DeleteSecurityContext(&netconn->ssl_ctx);
     }
+    if (SecIsValidHandle(&netconn->ssl_ctx))
+        DeleteSecurityContext(&netconn->ssl_ctx);
 
     close_netconn(netconn);
     heap_free(netconn);
-- 
2.17.1




More information about the wine-devel mailing list