From 629fd8fcbca495ce8b8d5cd91e76299b5422fe94 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Tue, 27 Oct 2009 10:04:05 +0100 Subject: [PATCH] winhttp: Clean up locks after closing libssl and libcrypto. SSL_CTX_free() triggers a call to the locking callback. Found by valgrind. --- dlls/winhttp/net.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/dlls/winhttp/net.c b/dlls/winhttp/net.c index 28b39723970..53911d659cb 100644 --- a/dlls/winhttp/net.c +++ b/dlls/winhttp/net.c @@ -316,13 +316,6 @@ void netconn_unload( void ) #if defined(SONAME_LIBSSL) && defined(SONAME_LIBCRYPTO) if (libcrypto_handle) { - if (ssl_locks) - { - int i; - - for (i = 0; i < num_ssl_locks; i++) DeleteCriticalSection( &ssl_locks[i] ); - HeapFree( GetProcessHeap(), 0, ssl_locks ); - } wine_dlclose( libcrypto_handle, NULL, 0 ); } if (libssl_handle) @@ -331,6 +324,12 @@ void netconn_unload( void ) pSSL_CTX_free( ctx ); wine_dlclose( libssl_handle, NULL, 0 ); } + if (ssl_locks) + { + int i; + for (i = 0; i < num_ssl_locks; i++) DeleteCriticalSection( &ssl_locks[i] ); + HeapFree( GetProcessHeap(), 0, ssl_locks ); + } #endif }