Fix TLS CTX ref counting

This commit is contained in:
Howard Chu 2006-07-02 22:38:01 +00:00
parent 23a6aa373b
commit a7870943f7
2 changed files with 2 additions and 4 deletions

View file

@ -1366,6 +1366,7 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg )
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;

View file

@ -959,11 +959,8 @@ stop:
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();