From 15dac6f498f70c0663c87f319438b6640a158e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:14:33 +0000 Subject: [PATCH 1/7] ITS#10440 slapo-autogroup: do not propagate request controls to internal ops --- contrib/slapd-modules/autogroup/autogroup.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/contrib/slapd-modules/autogroup/autogroup.c b/contrib/slapd-modules/autogroup/autogroup.c index 94876d8c1c..148207331f 100644 --- a/contrib/slapd-modules/autogroup/autogroup.c +++ b/contrib/slapd-modules/autogroup/autogroup.c @@ -137,6 +137,8 @@ autogroup_add_member_to_group( Operation *op, BerValue *dn, BerValue *ndn, autog modlist->sml_flags = SLAP_MOD_INTERNAL; modlist->sml_next = NULL; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.o_opid = 0; /* shared with op, saved above */ o.o_tag = LDAP_REQ_MODIFY; o.o_callback = &cb; @@ -194,6 +196,8 @@ autogroup_add_member_values_to_group( Operation *op, struct berval *dn, autogrou modlist.sml_flags = SLAP_MOD_INTERNAL; modlist.sml_next = NULL; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.o_opid = 0; o.o_tag = LDAP_REQ_MODIFY; o.o_callback = &cb; @@ -268,6 +272,8 @@ autogroup_delete_member_from_group( Operation *op, BerValue *dn, BerValue *ndn, modlist->sml_flags = SLAP_MOD_INTERNAL; modlist->sml_next = NULL; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.o_opid = 0; o.o_callback = &cb; o.o_tag = LDAP_REQ_MODIFY; @@ -325,6 +331,8 @@ autogroup_delete_member_values_from_group( Operation *op, struct berval *dn, aut modlist.sml_flags = SLAP_MOD_INTERNAL; modlist.sml_next = NULL; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.o_opid = 0; o.o_tag = LDAP_REQ_MODIFY; o.o_callback = &cb; @@ -510,6 +518,8 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a if ( op->o_abandon && !modify ) return 0; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.ors_attrsonly = 0; o.o_tag = LDAP_REQ_SEARCH; @@ -559,6 +569,7 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a rs_reinit( &rs, REP_RESULT ); o = *op; + o.o_opid = 0; o.o_callback = &null_cb; o.o_tag = LDAP_REQ_MODIFY; @@ -567,6 +578,8 @@ autogroup_add_members_from_filter( Operation *op, Entry *e, autogroup_entry_t *a o.o_ndn = op->o_bd->be_rootndn; o.o_req_dn = age->age_dn; o.o_req_ndn = age->age_ndn; + + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); o.o_relax = SLAP_CONTROL_CRITICAL; o.o_managedsait = SLAP_CONTROL_NONCRITICAL; o.o_permissive_modify = 1; From 663d956922cf49e0c7a6e6da0b97d6d43d0f291d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:14:48 +0000 Subject: [PATCH 2/7] ITS#10440 slapo-constraint: do not propagate request controls to internal ops --- servers/slapd/overlays/constraint.c | 1 + 1 file changed, 1 insertion(+) diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c index 7ab70f04b5..0ef27746a2 100644 --- a/servers/slapd/overlays/constraint.c +++ b/servers/slapd/overlays/constraint.c @@ -686,6 +686,7 @@ constraint_violation( constraint *c, struct berval *bv, Operation *op ) } nop.o_do_not_cache = 1; nop.o_callback = &cb; + memset( nop.o_ctrlflag, 0, sizeof(nop.o_ctrlflag) ); nop.ors_scope = c->lud->lud_scope; nop.ors_deref = LDAP_DEREF_NEVER; From 73a97a774af1c922fa9c0df17bc01c0007a7ea4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:15:03 +0000 Subject: [PATCH 3/7] ITS#10440 slapo-memberof: do not propagate request controls to internal ops --- servers/slapd/overlays/memberof.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/servers/slapd/overlays/memberof.c b/servers/slapd/overlays/memberof.c index ac73c84b4b..bccfe257aa 100644 --- a/servers/slapd/overlays/memberof.c +++ b/servers/slapd/overlays/memberof.c @@ -292,6 +292,8 @@ memberof_isGroupOrMember( Operation *op, memberof_cbinfo_t *mci ) op2.ors_slimit = 1; op2.ors_tlimit = SLAP_NO_LIMIT; + memset( op2.o_ctrlflag, 0, sizeof(op2.o_ctrlflag) ); + if ( mci->what & MEMBEROF_IS_GROUP ) { SlapReply rs2 = { REP_RESULT }; @@ -389,6 +391,8 @@ memberof_value_modify( op2.orm_no_opattrs = 1; op2.o_dont_replicate = 1; + memset( op2.o_ctrlflag, 0, sizeof(op2.o_ctrlflag) ); + /* main op has already completed if we got here, so even * if its abandon flag was set we must complete as well. */ op2.o_abandon = 0; @@ -568,6 +572,8 @@ memberof_addcheck( Operation *op ) mo_addcheck_t ma; SlapReply rs = {REP_SEARCH}; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); + o.o_dn = op->o_bd->be_rootdn; o.o_ndn = op->o_bd->be_rootndn; o.o_bd->bd_info = (BackendInfo *)on->on_info; From 04ebe9ab77fbc10ef836d9fcc3ea30831a843b12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:15:36 +0000 Subject: [PATCH 4/7] ITS#10440 slapo-nestgroup: do not propagate request controls to internal ops --- servers/slapd/overlays/nestgroup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/slapd/overlays/nestgroup.c b/servers/slapd/overlays/nestgroup.c index 8ae41171ea..08d4438a00 100644 --- a/servers/slapd/overlays/nestgroup.c +++ b/servers/slapd/overlays/nestgroup.c @@ -399,6 +399,7 @@ nestgroup_memberFilter( Operation *op, int mbr_nf, nestgroup_filterinst_t *mbr_f Operation o = *op; int i; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); o.o_managedsait = SLAP_CONTROL_CRITICAL; sc = op->o_tmpcalloc( 1, sizeof(slap_callback) + sizeof(gdn_info), op->o_tmpmemctx); gi = (gdn_info *)(sc+1); @@ -580,6 +581,7 @@ nestgroup_memberOfVals( Operation *op, slap_overinst *on, Attribute *a ) AttributeAssertion mava; int i; + memset( o.o_ctrlflag, 0, sizeof(o.o_ctrlflag) ); o.o_managedsait = SLAP_CONTROL_CRITICAL; sc = op->o_tmpcalloc( 1, sizeof(slap_callback) + sizeof(gdn_info), op->o_tmpmemctx); gi = (gdn_info *)(sc+1); From 813cf829e414d3fbf9c668c630449d07a1266f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:15:50 +0000 Subject: [PATCH 5/7] ITS#10440 slapo-retcode: do not propagate request controls to internal ops --- servers/slapd/overlays/retcode.c | 1 + 1 file changed, 1 insertion(+) diff --git a/servers/slapd/overlays/retcode.c b/servers/slapd/overlays/retcode.c index d920283d89..209a11b1a1 100644 --- a/servers/slapd/overlays/retcode.c +++ b/servers/slapd/overlays/retcode.c @@ -253,6 +253,7 @@ retcode_op_internal( Operation *op, SlapReply *rs ) op2.ors_limit = NULL; op2.ors_attrsonly = 0; op2.ors_attrs = slap_anlist_all_attributes; + memset( op2.o_ctrlflag, 0, sizeof(op2.o_ctrlflag) ); ber_str2bv_x( "(objectClass=errAbsObject)", STRLENOF( "(objectClass=errAbsObject)" ), From 927629417df751a783904f131b4ab6aa8e255567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:16:17 +0000 Subject: [PATCH 6/7] ITS#10440 slapo-syncprov: do not propagate request controls to internal ops --- servers/slapd/overlays/syncprov.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index db5e59927b..431194d7de 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -2294,6 +2294,9 @@ syncprov_play_accesslog( Operation *op, SlapReply *rs, sync_control *srs, fop.o_bd = db; fop.o_dn = db->be_rootdn; fop.o_ndn = db->be_rootndn; + + memset( fop.o_ctrlflag, 0, sizeof(fop.o_ctrlflag) ); + rc = be_entry_get_rw( &fop, &si->si_logbase, NULL, ad_minCSN, 0, &e ); if ( rc ) { return rc; From 5129517b6956f4679b110af854e04f0d3f7be576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Thu, 5 Feb 2026 16:16:34 +0000 Subject: [PATCH 7/7] ITS#10440 slapo-retcode: do not propagate request controls to internal ops --- servers/slapd/overlays/translucent.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index e54ca6195c..6b2220befc 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -292,6 +292,8 @@ void glue_parent(Operation *op) { nop.o_req_ndn = ndn; nop.ora_e = e; + memset( nop.o_ctrlflag, 0, sizeof(nop.o_ctrlflag) ); + nop.o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig; syncrepl_add_glue(&nop, e); nop.o_bd->bd_info = (BackendInfo *) on;