]> git.sur5r.net Git - openldap/commitdiff
ITS#7676,7677 don't leak libldap err codes
authorHoward Chu <hyc@openldap.org>
Fri, 30 Aug 2013 19:18:55 +0000 (12:18 -0700)
committerHoward Chu <hyc@openldap.org>
Fri, 30 Aug 2013 19:28:17 +0000 (12:28 -0700)
servers/slapd/bconfig.c

index 8c823f208d4ffa8b5ea707cbca63992ce7ba999e..c760a98e2e648ee3a95abbedeedc72db897f3c08 100644 (file)
@@ -4027,6 +4027,7 @@ config_tls_cleanup(ConfigArgs *c) {
                int opt = 1;
 
                ldap_pvt_tls_ctx_free( slap_tls_ctx );
+               slap_tls_ctx = NULL;
 
                /* Force new ctx to be created */
                rc = ldap_pvt_tls_set_option( slap_tls_ld, LDAP_OPT_X_TLS_NEWCTX, &opt );
@@ -4035,6 +4036,11 @@ config_tls_cleanup(ConfigArgs *c) {
                        ldap_pvt_tls_get_option( slap_tls_ld, LDAP_OPT_X_TLS_CTX, &slap_tls_ctx );
                        /* This is a no-op if it's already loaded */
                        load_extop( &slap_EXOP_START_TLS, 0, starttls_extop );
+               } else {
+                       if ( rc == LDAP_NOT_SUPPORTED )
+                               rc = LDAP_UNWILLING_TO_PERFORM;
+                       else
+                               rc = LDAP_OTHER;
                }
        }
        return rc;