summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-09-21 15:12:07 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-09-21 15:12:07 -0700
commit8ac525e5ac997378f4f2a386e9b96568c8d66db5 (patch)
treeb38e017567ec3f8f968daf1bd18d55180fcb39d1
parent62cc84cec98c46d5792178d483f8780d43537d0a (diff)
downloadds-8ac525e5ac997378f4f2a386e9b96568c8d66db5.tar.gz
ds-8ac525e5ac997378f4f2a386e9b96568c8d66db5.tar.xz
ds-8ac525e5ac997378f4f2a386e9b96568c8d66db5.zip
Bug 635987 - Incorrect sub scope search result with
ACL containing ldap:///self https://bugzilla.redhat.com/show_bug.cgi?id=635987 Description: When a basedn has no descendants, the code to take an intersection of idl (which was returned from the filter search -- filter_candidates) and the basedn was skipped in subtree_candidates (ldbm_search.c). Regardless of descendants, the intersection should be taken for the idl and a tree starting with the basedn. Note: This bug was introduced with entryrdn.
-rw-r--r--ldap/servers/slapd/back-ldbm/ldbm_search.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_search.c b/ldap/servers/slapd/back-ldbm/ldbm_search.c
index 9a8dd0fd..30674960 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_search.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_search.c
@@ -960,12 +960,10 @@ subtree_candidates(
} else if (!has_tombstone_filter) {
*err = ldbm_ancestorid_read(be, NULL, e->ep_id, &descendants);
}
- if (descendants) {
- idl_insert(&descendants, e->ep_id);
- candidates = idl_intersection(be, candidates, descendants);
- idl_free(tmp);
- idl_free(descendants);
- }
+ idl_insert(&descendants, e->ep_id);
+ candidates = idl_intersection(be, candidates, descendants);
+ idl_free(tmp);
+ idl_free(descendants);
}
return( candidates );