37 lines
1013 B
Diff
37 lines
1013 B
Diff
|
|
diff --git a/libraries/libldap/init.c b/libraries/libldap/init.c
|
||
|
|
index 9b877a9..9a8d661 100644
|
||
|
|
--- a/libraries/libldap/init.c
|
||
|
|
+++ b/libraries/libldap/init.c
|
||
|
|
@@ -473,7 +473,7 @@ static void openldap_ldap_init_w_env(
|
||
|
|
* Sorry, don't know how to handle this for non-GCC environments.
|
||
|
|
*/
|
||
|
|
static void ldap_int_destroy_global_options(void)
|
||
|
|
- __attribute__ ((destructor));
|
||
|
|
+ __attribute__ ((destructor (2)));
|
||
|
|
#endif
|
||
|
|
|
||
|
|
static void
|
||
|
|
diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c
|
||
|
|
index 7f92783..f6c27de 100644
|
||
|
|
--- a/libraries/libldap/tls_m.c
|
||
|
|
+++ b/libraries/libldap/tls_m.c
|
||
|
|
@@ -1951,6 +1951,18 @@ tlsm_clientauth_init( tlsm_ctx *ctx )
|
||
|
|
return ( status == SECSuccess ? 0 : -1 );
|
||
|
|
}
|
||
|
|
|
||
|
|
+#if defined(__GNUC__)
|
||
|
|
+static void
|
||
|
|
+tlsm_destroy_on_unload(void) __attribute__ ((destructor (1)));
|
||
|
|
+
|
||
|
|
+static void
|
||
|
|
+tlsm_destroy_on_unload(void)
|
||
|
|
+{
|
||
|
|
+ if (NSS_IsInitialized())
|
||
|
|
+ NSS_UnregisterShutdown(tlsm_nss_shutdown_cb, NULL);
|
||
|
|
+}
|
||
|
|
+#endif
|
||
|
|
+
|
||
|
|
/*
|
||
|
|
* Tear down the TLS subsystem. Should only be called once.
|
||
|
|
*/
|