]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Ensure the TLS dictionary is freed on exit
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 6 Apr 2021 14:06:50 +0000 (15:06 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 6 Apr 2021 14:06:50 +0000 (15:06 +0100)
src/bin/radiusd.c
src/lib/tls/base-h
src/lib/tls/base.c

index b1782002fb4bee4540bd8866753ee7ae559bdfdc..d7bc0f161beac14eb6d2a93f97b816431090bc87 100644 (file)
@@ -1006,6 +1006,13 @@ cleanup:
         */
        if (dl_modules) talloc_free(dl_modules);
 
+#ifdef HAVE_OPENSSL_CRYPTO_H
+       /*
+        *      Make sure we clean up the TLS dictionary...
+        */
+       fr_tls_dict_free();
+#endif
+
        /*
         *  Cleanup everything else
         */
index 5aabd45b74ee9f07fdf8aaca33ea921aa84f6b50..a94de33f86cf7a0d87ba7e27530d87d2a1764bc3 100644 (file)
@@ -429,6 +429,8 @@ void                fr_openssl_free(void);
 
 int            fr_tls_dict_init(void);
 
+void           fr_tls_dict_free(void);
+
 /*
  *     tls/log.c
  */
index da773a0833cf0798247b5090ebde92aa88794065..6ef5d2be80f1af5206cdd9ad2bf82b5a3e5306d8 100644 (file)
@@ -481,7 +481,7 @@ void fr_openssl_free(void)
 
        TALLOC_FREE(global_mutexes);
 
-       fr_dict_autofree(tls_dict);
+       fr_tls_dict_free();
 }
 #else
 /** Free any memory alloced by libssl
@@ -499,7 +499,7 @@ void fr_openssl_free(void)
 
        OPENSSL_cleanup();
 
-       fr_dict_autofree(tls_dict);
+       fr_tls_dict_free();
 }
 #endif
 
@@ -583,4 +583,8 @@ int fr_tls_dict_init(void)
        return 0;
 }
 
+void fr_tls_dict_free(void)
+{
+       fr_dict_autofree(tls_dict);
+}
 #endif /* WITH_TLS */