From c129744fc253e703ac0c8f4b2a02e5671af2ec38 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Thu, 5 Mar 2009 19:09:41 +0000 Subject: [PATCH] Don't call NSS_Shutdown if someone else init'd the library --- libraries/libldap/tls_m.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c index 93ab4ae0c6..bd9fdcdc44 100644 --- a/libraries/libldap/tls_m.c +++ b/libraries/libldap/tls_m.c @@ -61,6 +61,8 @@ static const PRIOMethods tlsm_PR_methods; extern tls_impl ldap_int_tls_impl; +static int tslm_did_init; + #ifdef LDAP_R_COMPILE static void @@ -81,6 +83,8 @@ tlsm_init( void ) tlsm_layer_id = PR_GetUniqueIdentity("OpenLDAP"); if ( !NSS_IsInitialized() ) { + tlsm_did_init = 1; + NSS_NoDB_Init(""); NSS_SetDomesticPolicy(); @@ -97,7 +101,12 @@ tlsm_init( void ) static void tlsm_destroy( void ) { - NSS_Shutdown(); + /* Only if we did the actual initialization */ + if ( tlsm_did_init ) { + tlsm_did_init = 0; + + NSS_Shutdown(); + } PR_Cleanup(); } -- GitLab