From: Howard Chu Date: Tue, 13 Oct 2020 21:11:44 +0000 (+0100) Subject: ITS#9121 don't process nested memberOf if memberOf wasn't requested X-Git-Tag: OPENLDAP_REL_ENG_2_5_0ALPHA~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1912fb7af325c4cf98535caa82bb12096fc3c8a;p=thirdparty%2Fopenldap.git ITS#9121 don't process nested memberOf if memberOf wasn't requested --- diff --git a/servers/slapd/overlays/dynlist.c b/servers/slapd/overlays/dynlist.c index 2dab753af0..822feaf16c 100644 --- a/servers/slapd/overlays/dynlist.c +++ b/servers/slapd/overlays/dynlist.c @@ -1715,27 +1715,30 @@ dynlist_search( Operation *op, SlapReply *rs ) /* if attribute is not requested, skip it */ if ( op->ors_attrs == NULL ) { - if ( !dlm->dlm_memberOf_oper ) + if ( !dlm->dlm_memberOf_oper ) { want |= WANT_MEMBEROF; - if ( dlm->dlm_memberOf_nested && !dlm->dlm_member_oper ) - want |= WANT_MEMBER; + if ( dlm->dlm_memberOf_nested && !dlm->dlm_member_oper ) + want |= WANT_MEMBER; + } } else { - if ( ad_inlist( dlm->dlm_memberOf_ad, op->ors_attrs )) + if ( ad_inlist( dlm->dlm_memberOf_ad, op->ors_attrs )) { want |= WANT_MEMBEROF; - if ( dlm->dlm_memberOf_nested && ad_inlist( dlm->dlm_member_ad, op->ors_attrs )) { - want |= WANT_MEMBER; + if ( dlm->dlm_memberOf_nested && ad_inlist( dlm->dlm_member_ad, op->ors_attrs )) + want |= WANT_MEMBER; } else { if ( opattrs ) { - if ( dlm->dlm_memberOf_oper ) + if ( dlm->dlm_memberOf_oper ) { want |= WANT_MEMBEROF; - if ( dlm->dlm_memberOf_nested && dlm->dlm_member_oper ) - want |= WANT_MEMBER; + if ( dlm->dlm_memberOf_nested && dlm->dlm_member_oper ) + want |= WANT_MEMBER; + } } if ( userattrs ) { - if ( !dlm->dlm_memberOf_oper ) + if ( !dlm->dlm_memberOf_oper ) { want |= WANT_MEMBEROF; - if ( dlm->dlm_memberOf_nested && !dlm->dlm_member_oper ) - want |= WANT_MEMBER; + if ( dlm->dlm_memberOf_nested && !dlm->dlm_member_oper ) + want |= WANT_MEMBER; + } } } }