summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-07-21 21:00:27 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-09-04 16:12:24 +0200
commit74a599a655d192b50626bf658b0f23895e11d498 (patch)
tree7bc743278545ad4b5654a79923b139791b84230d
parent60713f738cedb6e4239604baf6619a0ca986fa49 (diff)
downloadsssd-74a599a655d192b50626bf658b0f23895e11d498.tar.gz
sssd-74a599a655d192b50626bf658b0f23895e11d498.tar.xz
sssd-74a599a655d192b50626bf658b0f23895e11d498.zip
LDAP: imposing sizelimit=1 for single-entry searches breaks overlapping domains
https://fedorahosted.org/sssd/ticket/2723 In case there are overlapping sdap domains, a search for a single user might match and return multiple entries. For instance, with AD domains represented by search bases: DC=win,DC=trust,DC=test DC=child,DC=win,DC=trust,DC=test A search for user from win.trust.test would be based at: DC=win,DC=trust,DC=test but would match both search bases and return both users. Instead of performing complex filtering, just save both users. The responder would select the entry that matches the user's search.
-rw-r--r--src/providers/ldap/sdap_async_groups.c3
-rw-r--r--src/providers/ldap/sdap_async_users.c3
2 files changed, 0 insertions, 6 deletions
diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
index 525c6fa09..0a5033e5d 100644
--- a/src/providers/ldap/sdap_async_groups.c
+++ b/src/providers/ldap/sdap_async_groups.c
@@ -1874,8 +1874,6 @@ static errno_t sdap_get_groups_next_base(struct tevent_req *req)
switch (state->lookup_type) {
case SDAP_LOOKUP_SINGLE:
- sizelimit = 1;
- need_paging = false;
break;
/* Only requests that can return multiple entries should require
* the paging control
@@ -1885,7 +1883,6 @@ static errno_t sdap_get_groups_next_base(struct tevent_req *req)
need_paging = true;
break;
case SDAP_LOOKUP_ENUMERATE:
- sizelimit = 0; /* unlimited */
need_paging = true;
break;
}
diff --git a/src/providers/ldap/sdap_async_users.c b/src/providers/ldap/sdap_async_users.c
index a864a8b21..e38f4cd16 100644
--- a/src/providers/ldap/sdap_async_users.c
+++ b/src/providers/ldap/sdap_async_users.c
@@ -692,8 +692,6 @@ static errno_t sdap_search_user_next_base(struct tevent_req *req)
switch (state->lookup_type) {
case SDAP_LOOKUP_SINGLE:
- sizelimit = 1;
- need_paging = false;
break;
/* Only requests that can return multiple entries should require
* the paging control
@@ -703,7 +701,6 @@ static errno_t sdap_search_user_next_base(struct tevent_req *req)
need_paging = true;
break;
case SDAP_LOOKUP_ENUMERATE:
- sizelimit = 0; /* unlimited */
need_paging = true;
break;
}