Browse Source

Add free_openssl() to crypto_openssl module.

Add free_openssl() function to free the memory allocated for OpenSSL version
management variables. It is required since OpenSSL management has been isolated
from the crypto module.

Follows #24658.

Signed-off-by: Fernando Fernandez Mancera <ffernandezmancera@gmail.com>
Fernando Fernandez Mancera 6 years ago
parent
commit
7353c9496e
3 changed files with 12 additions and 2 deletions
  1. 1 2
      src/common/crypto.c
  2. 8 0
      src/common/crypto_openssl.c
  3. 3 0
      src/common/crypto_openssl.h

+ 1 - 2
src/common/crypto.c

@@ -3348,8 +3348,7 @@ crypto_global_cleanup(void)
   }
 #endif /* !defined(NEW_THREAD_API) */
 
-  tor_free(crypto_openssl_version_str);
-  tor_free(crypto_openssl_header_version_str);
+  free_openssl();
   return 0;
 }
 

+ 8 - 0
src/common/crypto_openssl.c

@@ -113,3 +113,11 @@ setup_openssl_threading(void)
   return 0;
 }
 
+/** free OpenSSL variables */
+void
+free_openssl(void)
+{
+  tor_free(crypto_openssl_version_str);
+  tor_free(crypto_openssl_header_version_str);
+}
+

+ 3 - 0
src/common/crypto_openssl.h

@@ -101,5 +101,8 @@ void tor_set_openssl_thread_id(CRYPTO_THREADID *threadid);
 /* OpenSSL threading setup function */
 int setup_openssl_threading(void);
 
+/* Tor OpenSSL utility functions */
+void free_openssl(void);
+
 #endif /* !defined(TOR_CRYPTO_OPENSSL_H) */