ITS#10398 slapo-memberof/refint: fix clash on subtree renames

refint must use manageDsaIt control on its repair ops, and
memberof must ignore modify ops with this control set.
This commit is contained in:
Howard Chu 2025-10-07 19:12:12 +01:00
parent 0c69e59f85
commit 1b1b687bd4
2 changed files with 5 additions and 2 deletions

View 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;

View 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 ) ) {