]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10045 Make sure we only unpause when paused
authorOndřej Kuzník <ondra@mistotebe.net>
Tue, 25 Jul 2023 10:08:30 +0000 (11:08 +0100)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 31 Jul 2023 18:06:12 +0000 (18:06 +0000)
servers/slapd/bconfig.c

index 15d4a6a1f9626918e88d61b0b71a0edc0dc00b26..4c4b925a9b270d0c047d3c9db979734eca3b4d8e 100644 (file)
@@ -5966,7 +5966,7 @@ config_back_add( Operation *op, SlapReply *rs )
                dopause = 0;
        if ( op->o_abandon ) {
                rs->sr_err = SLAPD_ABANDON;
-               goto out;
+               goto unpause;
        }
 
        ldap_pvt_thread_rdwr_wlock( &cfb->cb_rwlock );
@@ -6021,10 +6021,11 @@ config_back_add( Operation *op, SlapReply *rs )
 out2:;
        ldap_pvt_thread_rdwr_wunlock( &cfb->cb_rwlock );
 
-out:;
+unpause:;
        if ( dopause )
                slap_unpause_server();
 
+out:;
        {       int repl = op->o_dont_replicate;
                if ( rs->sr_err == LDAP_COMPARE_TRUE ) {
                        rs->sr_text = NULL; /* Set after config_add_internal */
@@ -6513,7 +6514,7 @@ config_back_modify( Operation *op, SlapReply *rs )
                        do_pause = 0;
                if ( op->o_abandon ) {
                        rs->sr_err = SLAPD_ABANDON;
-                       goto out;
+                       goto unpause;
                }
        }
        ldap_pvt_thread_rdwr_wlock( &cfb->cb_rwlock );
@@ -6549,9 +6550,10 @@ config_back_modify( Operation *op, SlapReply *rs )
        }
 
        ldap_pvt_thread_rdwr_wunlock( &cfb->cb_rwlock );
-out:
+unpause:;
        if ( do_pause )
                slap_unpause_server();
+out:
        send_ldap_result( op, rs );
        slap_graduate_commit_csn( op );
        return rs->sr_err;
@@ -6694,7 +6696,7 @@ config_back_modrdn( Operation *op, SlapReply *rs )
                dopause = 0;
        if ( op->o_abandon ) {
                rs->sr_err = SLAPD_ABANDON;
-               goto out;
+               goto unpause;
        }
 
        ldap_pvt_thread_rdwr_wlock( &cfb->cb_rwlock );
@@ -6765,9 +6767,10 @@ config_back_modrdn( Operation *op, SlapReply *rs )
 
        ldap_pvt_thread_rdwr_wunlock( &cfb->cb_rwlock );
 
-out:
+unpause:
        if ( dopause )
                slap_unpause_server();
+out:
        send_ldap_result( op, rs );
        return rs->sr_err;
 }