if ( lo->ldo_tls_ctx )
SSL_CTX_free( lo->ldo_tls_ctx );
lo->ldo_tls_ctx = arg;
+ CRYPTO_add( &((SSL_CTX *)arg)->references, 1, CRYPTO_LOCK_SSL_CTX );
return 0;
case LDAP_OPT_X_TLS_CONNECT_CB:
lo->ldo_tls_connect_cb = (LDAP_TLS_CONNECT_CB *)arg;
lutil_passwd_destroy();
#ifdef HAVE_TLS
- /* Setting it to itself decreases refcount, allowing it to be freed
- * when the LD is freed.
- */
if ( slap_tls_ld ) {
- ldap_pvt_tls_set_option( slap_tls_ld, LDAP_OPT_X_TLS_CTX, slap_tls_ctx );
+ SSL_CTX_free( slap_tls_ctx );
ldap_unbind( slap_tls_ld );
}
ldap_pvt_tls_destroy();