]> git.sur5r.net Git - openldap/commitdiff
Free/decrement SSL_CTX refcount when (re)setting it
authorHoward Chu <hyc@openldap.org>
Fri, 7 Apr 2006 01:15:56 +0000 (01:15 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 7 Apr 2006 01:15:56 +0000 (01:15 +0000)
libraries/libldap/tls.c

index 6bf4fd3c88232150bc4d7bf0b257548d0fe81206..96e57ef95150fa648ec0f2aca9ac85fcff4486fd 100644 (file)
@@ -1347,6 +1347,8 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg )
                return -1;
 
        case LDAP_OPT_X_TLS_CTX:
+               if ( lo->ldo_tls_ctx )
+                       SSL_CTX_free( lo->ldo_tls_ctx );
                lo->ldo_tls_ctx = arg;
                return 0;
        case LDAP_OPT_X_TLS_CONNECT_CB:
@@ -1413,6 +1415,8 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg )
 
        case LDAP_OPT_X_TLS_NEWCTX:
                if ( !arg ) return -1;
+               if ( lo->ldo_tls_ctx )
+                       SSL_CTX_free( lo->ldo_tls_ctx );
                lo->ldo_tls_ctx = NULL;
                return ldap_int_tls_init_ctx( lo, *(int *)arg );
        default: