Merge LDAP filter parinoia from HEAD, a few other pdb_ldap updates and some
[bbaumbach/samba-autobuild/.git] / source3 / libads / ldap_user.c
index 2e38e7a00d1dae74a578cb1709e37f683babcc2c..7efe5338f371bb7e8b81a6a3a3e0cad3dfbc0511 100644 (file)
@@ -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;
 }