]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10398 slapo-memberof/refint: fix clash on subtree renames
authorHoward Chu <hyc@openldap.org>
Tue, 7 Oct 2025 18:12:12 +0000 (19:12 +0100)
committerHoward Chu <hyc@openldap.org>
Tue, 7 Oct 2025 18:12:12 +0000 (19:12 +0100)
refint must use manageDsaIt control on its repair ops, and
memberof must ignore modify ops with this control set.

servers/slapd/overlays/memberof.c
servers/slapd/overlays/refint.c

index 46232e45c8b617b15f9a1cb5b963ead11bb9d43f..4e6ae5ad9f5142a91984d9d1285137e34270a0fd 100644 (file)
@@ -903,6 +903,9 @@ memberof_op_modify( Operation *op, SlapReply *rs )
        memberof_cbinfo_t *mci, mcis;
        OpExtra         *oex;
 
+       if ( get_manageDSAit( op ))
+               return SLAP_CB_CONTINUE;
+
        LDAP_SLIST_FOREACH( oex, &op->o_extra, oe_next ) {
                if ( oex->oe_key == (void *)&memberof )
                        return SLAP_CB_CONTINUE;
@@ -2154,8 +2157,7 @@ mo_cf_gen( ConfigArgs *c )
                                if ( SLAP_ISGLOBALOVERLAY( c->be ) ) {
                                        snprintf( c->cr_msg, sizeof( c->cr_msg ),
                                                "addcheck functionality not supported "
-                                               "when memberof is a global overlay",
-                                               c->argv[ 1 ] );
+                                               "when memberof is a global overlay" );
                                        Debug( LDAP_DEBUG_ANY, "%s: %s.\n",
                                                c->log, c->cr_msg );
                                        return 1;
index 1bcaf0ee9db5034eafe21ae4d184c9b5f4b5ddb0..6d990dc55850136b3306f2994bbe1e5be695a1f5 100644 (file)
@@ -660,6 +660,7 @@ refint_repair(
                op2.orm_no_opattrs = 1;
                op2.o_dont_replicate = 1;
                op2.o_opid = 0;
+               op2.o_managedsait = SLAP_CONTROL_CRITICAL;
 
                /* Set our ModifiersName */
                if ( SLAP_LASTMOD( op->o_bd ) ) {