From f606179c9cd8c80b7ee6a3f858a674de2c455d1d Mon Sep 17 00:00:00 2001 From: Christian Beier Date: Sun, 15 Apr 2012 17:17:12 +0200 Subject: LibVNCClient: properly free the openssl session stuff on shutdown. --- libvncclient/tls_openssl.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'libvncclient/tls_openssl.c') diff --git a/libvncclient/tls_openssl.c b/libvncclient/tls_openssl.c index 88e31f5..b6df946 100644 --- a/libvncclient/tls_openssl.c +++ b/libvncclient/tls_openssl.c @@ -568,19 +568,20 @@ void FreeTLS(rfbClient* client) { int i; - if (mutex_buf == NULL) - return (0); - - CRYPTO_set_dynlock_create_callback(NULL); - CRYPTO_set_dynlock_lock_callback(NULL); - CRYPTO_set_dynlock_destroy_callback(NULL); - - CRYPTO_set_locking_callback(NULL); - CRYPTO_set_id_callback(NULL); + if (mutex_buf != NULL) { + CRYPTO_set_dynlock_create_callback(NULL); + CRYPTO_set_dynlock_lock_callback(NULL); + CRYPTO_set_dynlock_destroy_callback(NULL); + + CRYPTO_set_locking_callback(NULL); + CRYPTO_set_id_callback(NULL); + + for (i = 0; i < CRYPTO_num_locks(); i++) + pthread_mutex_destroy(&mutex_buf[i]); + free(mutex_buf); + mutex_buf = NULL; + } - for (i = 0; i < CRYPTO_num_locks(); i++) - pthread_mutex_destroy(&mutex_buf[i]); - free(mutex_buf); - mutex_buf = NULL; + SSL_free(client->tlsSession); } -- cgit v1.2.1