[4/6] wininet: Clean up locks after closing libssl and libcrypto.
Paul Vriens
paul.vriens.wine at gmail.com
Sun Feb 7 09:24:11 CST 2010
On 10/27/2009 10:04 AM, Hans Leidekker wrote:
> Found by valgrind.
> ---
> dlls/wininet/netconnection.c | 14 ++++++--------
> 1 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
> index 97c764f..16cce40 100644
> --- a/dlls/wininet/netconnection.c
> +++ b/dlls/wininet/netconnection.c
> @@ -289,14 +289,6 @@ void NETCON_unload(void)
> #if defined(SONAME_LIBSSL)&& defined(SONAME_LIBCRYPTO)
> if (OpenSSL_crypto_handle)
> {
> - if (ssl_locks)
> - {
> - int i;
> -
> - for (i = 0; i< pCRYPTO_num_locks(); i++)
> - DeleteCriticalSection(&ssl_locks[i]);
> - HeapFree(GetProcessHeap(), 0, ssl_locks);
> - }
> wine_dlclose(OpenSSL_crypto_handle, NULL, 0);
> }
> if (OpenSSL_ssl_handle)
> @@ -305,6 +297,12 @@ void NETCON_unload(void)
> pSSL_CTX_free(ctx);
> wine_dlclose(OpenSSL_ssl_handle, NULL, 0);
> }
> + if (ssl_locks)
> + {
> + int i;
> + for (i = 0; i< pCRYPTO_num_locks(); i++) DeleteCriticalSection(&ssl_locks[i]);
> + HeapFree(GetProcessHeap(), 0, ssl_locks);
> + }
> #endif
> }
>
Hi Hans,
I was checking a crash in an installer (the AkamaiDownloadManager to
download CS4 for example) and it looks like we are accessing a ssl
function CRYPTO_num_locks() after we've closed the library?
Can you confirm this?
--
Cheers,
Paul.
More information about the wine-devel
mailing list