mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
Fix TLS CTX ref counting
This commit is contained in:
parent
23a6aa373b
commit
a7870943f7
2 changed files with 2 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in a new issue