]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9366 Check ldap_install_tls return and remove connection if failed
authorOndřej Kuzník <ondra@mistotebe.net>
Mon, 12 Oct 2020 10:09:03 +0000 (11:09 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 23 Oct 2020 20:38:21 +0000 (20:38 +0000)
servers/slapd/back-asyncmeta/conn.c
servers/slapd/back-meta/conn.c

index 28101276313493a4968cd40ef73f7f67758faa1f..62797b8cd2ac1aac8d1c49522c5c3f177e546291 100644 (file)
@@ -303,7 +303,7 @@ retry:;
                                         * using it instead of the
                                         * configured URI? */
                                        if ( rs->sr_err == LDAP_SUCCESS ) {
-                                               ldap_install_tls( msc->msc_ld );
+                                               rs->sr_err = ldap_install_tls( msc->msc_ld );
 
                                        } else if ( rs->sr_err == LDAP_REFERRAL ) {
                                                /* FIXME: LDAP_OPERATIONS_ERROR? */
@@ -352,6 +352,8 @@ retry:;
                                (void *)msc->msc_ld );
 #endif /* DEBUG_205 */
 
+                       /* need to trash a failed Start TLS */
+                       asyncmeta_clear_one_msc( op, mc, candidate, 1, __FUNCTION__ );
                        goto error_return;
                }
        }
index df7681d0b7e98853fb392cc5f5385bc33a6c2ff1..c704c0eba4b80d75eb2ae1ef1469a2ae4853b7b4 100644 (file)
@@ -508,7 +508,7 @@ retry:;
                                         * using it instead of the 
                                         * configured URI? */
                                        if ( rs->sr_err == LDAP_SUCCESS ) {
-                                               ldap_install_tls( msc->msc_ld );
+                                               rs->sr_err = ldap_install_tls( msc->msc_ld );
 
                                        } else if ( rs->sr_err == LDAP_REFERRAL ) {
                                                /* FIXME: LDAP_OPERATIONS_ERROR? */