From 883bf6e6d8ec84bb671c956e3a95894d9f9972ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 26 Oct 2008 18:20:37 +0000 Subject: [PATCH] quote userid too git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23956 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hdb/hdb-ldap.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/hdb/hdb-ldap.c b/lib/hdb/hdb-ldap.c index 0e5b034c8..823b17adf 100644 --- a/lib/hdb/hdb-ldap.c +++ b/lib/hdb/hdb-ldap.c @@ -794,7 +794,7 @@ LDAP__lookup_princ(krb5_context context, const char *userid, LDAPMessage **msg) { - struct berval princnamebv, quotedp; + struct berval namebv, quotedp; krb5_error_code ret; int rc; char *filter = NULL; @@ -808,8 +808,8 @@ LDAP__lookup_princ(krb5_context context, * searches for *@REALM, which takes very long time. */ - ber_str2bv(princname, 0, 0, &princnamebv); - if (ldap_bv2escaped_filter_value(&princnamebv, "edp) != 0) { + ber_str2bv(princname, 0, 0, &namebv); + if (ldap_bv2escaped_filter_value(&namebv, "edp) != 0) { ret = ENOMEM; krb5_set_error_message(context, ret, "malloc: out of memory"); goto out; @@ -848,9 +848,17 @@ LDAP__lookup_princ(krb5_context context, ldap_msgfree(*msg); *msg = NULL; + ber_str2bv(userid, 0, 0, &namebv); + if (ldap_bv2escaped_filter_value(&namebv, "edp) != 0) { + ret = ENOMEM; + krb5_set_error_message(context, ret, "malloc: out of memory"); + goto out; + } + rc = asprintf(&filter, "(&(|(objectClass=sambaSamAccount)(objectClass=%s))(uid=%s))", - structural_object, userid); + structural_object, quotedp.bv_val); + ber_memfree(quotedp.bv_val); if (rc < 0) { ret = ENOMEM; krb5_set_error_message(context, ret, "asprintf: out of memory");