]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#8698 Only remove our own callback
authorOndřej Kuzník <ondra@mistotebe.net>
Fri, 26 Mar 2021 11:49:24 +0000 (11:49 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 30 Mar 2021 02:10:19 +0000 (02:10 +0000)
servers/slapd/passwd.c

index 9a450fa0bd6a5da33438815c023406fdded1a149..17fb65a39e31e44db9a817cc27d9d2e769f6554a 100644 (file)
@@ -289,7 +289,7 @@ old_good:
                rs->sr_err = LDAP_OTHER;
 
        } else {
-               slap_callback *sc = op->o_callback;
+               slap_callback **sc;
 
                op->o_tag = LDAP_REQ_MODIFY;
                op->o_callback = &cb;
@@ -312,7 +312,12 @@ old_good:
                        rsp = NULL;
                }
                op->o_tag = LDAP_REQ_EXTENDED;
-               op->o_callback = sc;
+               for ( sc = &op->o_callback; *sc; sc = &(*sc)->sc_next ) {
+                       if ( *sc == &cb ) {
+                               *sc = cb.sc_next;
+                               break;
+                       }
+               }
        }
 
        rc = rs->sr_err;