]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2214. [bug] Deregister OpenSSL lock callback when cleaning
authorMark Andrews <marka@isc.org>
Mon, 27 Aug 2007 03:15:14 +0000 (03:15 +0000)
committerMark Andrews <marka@isc.org>
Mon, 27 Aug 2007 03:15:14 +0000 (03:15 +0000)
                        up. [RT #17098]

CHANGES
lib/dns/openssl_link.c

diff --git a/CHANGES b/CHANGES
index 5b83fe9abedebb734a2ee1acec0cbcbdaae17b6f..973a2aa163fbab33f4087f90f9cb616503505a60 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2214.  [bug]           Deregister OpenSSL lock callback when cleaning
+                       up. [RT #17098]
+
 2210.  [bug]           Deleting class specific records via UPDATE could
                        fail.  [RT #17074]
 
index 0ca8ba9afdd1057026697065c9c7677aa9029356..92f4eb65ccee55adb505c9aab5bb3f2f27f7d255 100644 (file)
@@ -18,7 +18,7 @@
 
 /*
  * Principal Author: Brian Wellington
- * $Id: openssl_link.c,v 1.1.2.3 2006/05/23 23:51:02 marka Exp $
+ * $Id: openssl_link.c,v 1.1.2.4 2007/08/27 03:15:14 marka Exp $
  */
 #ifdef OPENSSL
 
@@ -141,6 +141,7 @@ dst__openssl_init() {
        dst__mem_free(rm);
 #endif
  cleanup_mutexinit:
+       CRYPTO_set_locking_callback(NULL);
        RUNTIME_CHECK(isc_mutexblock_destroy(locks, nlocks) == ISC_R_SUCCESS);
  cleanup_mutexalloc:
        dst__mem_free(locks);
@@ -155,13 +156,14 @@ dst__openssl_destroy() {
                e = NULL;
        }
 #endif
+       if (rm != NULL)
+               dst__mem_free(rm);
        if (locks != NULL) {
+               CRYPTO_set_locking_callback(NULL);
                RUNTIME_CHECK(isc_mutexblock_destroy(locks, nlocks) ==
                              ISC_R_SUCCESS);
                dst__mem_free(locks);
        }
-       if (rm != NULL)
-               dst__mem_free(rm);
 }
 
 #endif /* OPENSSL */