]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9121 don't process nested memberOf if memberOf wasn't requested
authorHoward Chu <hyc@openldap.org>
Tue, 13 Oct 2020 21:11:44 +0000 (22:11 +0100)
committerHoward Chu <hyc@openldap.org>
Tue, 13 Oct 2020 21:11:44 +0000 (22:11 +0100)
servers/slapd/overlays/dynlist.c

index 2dab753af0570ec1d81e637a62fca2cfb0dbeaeb..822feaf16cec24d5f18e1239d6167fa42990a9e6 100644 (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;
+                                                               }
                                                        }
                                                }
                                        }