ITS#9121 don't process nested memberOf if memberOf wasn't requested

This commit is contained in:
Howard Chu 2020-10-13 22:11:44 +01:00
parent e322ad7999
commit c1912fb7af

View file

@ -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;
}
}
}
}