diff options
author | Jeremy Allison <jra@samba.org> | 2007-02-27 20:34:10 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2007-02-27 20:34:10 +0000 |
commit | b46d032e1e24c7dcb205284f04b5c1de10b3bece (patch) | |
tree | e0d7db52e1803dacc62ec1665422eefbdface0b0 /source/nsswitch/winbindd_ads.c | |
parent | 7edb77f467c7730a588240d3fd1da7cecafdadf1 (diff) | |
download | samba-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.
Diffstat (limited to 'source/nsswitch/winbindd_ads.c')
-rw-r--r-- | source/nsswitch/winbindd_ads.c | 10 |
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))); |