summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-02-27 20:34:10 +0000
committerJeremy Allison <jra@samba.org>2007-02-27 20:34:10 +0000
commitb46d032e1e24c7dcb205284f04b5c1de10b3bece (patch)
treee0d7db52e1803dacc62ec1665422eefbdface0b0
parent7edb77f467c7730a588240d3fd1da7cecafdadf1 (diff)
downloadsamba-b46d032e1e24c7dcb205284f04b5c1de10b3bece.tar.gz
samba-b46d032e1e24c7dcb205284f04b5c1de10b3bece.tar.xz
samba-b46d032e1e24c7dcb205284f04b5c1de10b3bece.zip
r21566: If we're going to be broken, at least be *consistently*
broken :-). This will do until Simo fixes the escape calls properly. Jeremy.
-rw-r--r--source/nsswitch/winbindd_ads.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/nsswitch/winbindd_ads.c b/source/nsswitch/winbindd_ads.c
index 5b0a13afa28..ea6dc2870a0 100644
--- a/source/nsswitch/winbindd_ads.c
+++ b/source/nsswitch/winbindd_ads.c
@@ -607,6 +607,7 @@ static NTSTATUS lookup_usergroups_memberof(struct winbindd_domain *domain,
const char *attrs[] = {"memberOf", NULL};
size_t num_groups = 0;
DOM_SID *group_sids = NULL;
+ char *escaped_dn;
int i;
DEBUG(3,("ads: lookup_usergroups_memberof\n"));
@@ -618,9 +619,16 @@ static NTSTATUS lookup_usergroups_memberof(struct winbindd_domain *domain,
goto done;
}
- rc = ads_search_retry_extended_dn(ads, &res, user_dn, attrs,
+ if (!(escaped_dn = escape_ldap_string_alloc(user_dn))) {
+ status = NT_STATUS_NO_MEMORY;
+ goto done;
+ }
+
+ rc = ads_search_retry_extended_dn(ads, &res, escaped_dn, attrs,
ADS_EXTENDED_DN_HEX_STRING);
+ SAFE_FREE(escaped_dn);
+
if (!ADS_ERR_OK(rc) || !res) {
DEBUG(1,("lookup_usergroups_memberof ads_search member=%s: %s\n",
user_dn, ads_errstr(rc)));