diff options
author | Andrew Bartlett <abartlet@samba.org> | 2003-02-01 05:20:11 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2003-02-01 05:20:11 +0000 |
commit | c2b134cc3b67d48961226cbfac6ea3a2fc7cc1a6 (patch) | |
tree | 3ca8971139282d99baed4a833162fc94c0f98911 /source3/libads/ldap_user.c | |
parent | 1454c1c99ab87e216dea1871b53c51ce7e548ba5 (diff) | |
download | samba-c2b134cc3b67d48961226cbfac6ea3a2fc7cc1a6.tar.gz samba-c2b134cc3b67d48961226cbfac6ea3a2fc7cc1a6.tar.bz2 samba-c2b134cc3b67d48961226cbfac6ea3a2fc7cc1a6.zip |
Always escape ldap filter strings. Escaping code was from pam_ldap, but I'm to
blame for the realloc() stuff.
Plus a couple of minor updates to libads.
Andrew Bartlett
(This used to be commit 34b2e558a4b3cfd753339bb228a9799e27ed8170)
Diffstat (limited to 'source3/libads/ldap_user.c')
-rw-r--r-- | source3/libads/ldap_user.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source3/libads/ldap_user.c b/source3/libads/ldap_user.c index 2e38e7a00d..7efe5338f3 100644 --- a/source3/libads/ldap_user.c +++ b/source3/libads/ldap_user.c @@ -30,10 +30,15 @@ ADS_STATUS ads_find_user_acct(ADS_STRUCT *ads, void **res, const char *user) ADS_STATUS status; char *exp; const char *attrs[] = {"*", NULL}; + char *escaped_user = escape_ldap_string_alloc(user); + if (!escaped_user) { + return ADS_ERROR(LDAP_NO_MEMORY); + } - asprintf(&exp, "(samAccountName=%s)", user); + asprintf(&exp, "(samAccountName=%s)", escaped_user); status = ads_search(ads, res, exp, attrs); - free(exp); + SAFE_FREE(exp); + SAFE_FREE(escaped_user); return status; } |