# HG changeset patch # User Timo Sirainen # Date 1186413851 -10800 # Node ID 6c3788e03f7e25ea2fae4f568e006e824ba85687 # Parent 6c48466c23fab052567c84a5c1aec7c617fa9017 Ignore spaces after commas in user_attrs and pass_attrs. diff -r 6c48466c23fa -r 6c3788e03f7e src/auth/db-ldap.c --- a/src/auth/db-ldap.c Mon Aug 06 18:02:48 2007 +0300 +++ b/src/auth/db-ldap.c Mon Aug 06 18:24:11 2007 +0300 @@ -623,9 +623,9 @@ char ***attr_names_r, struct hash_table *attr_map, const char *skip_attr) { - const char *const *attr; + const char *const *attr, *attr_data, *p; string_t *static_data; - char *name, *value, *p; + char *name, *value; unsigned int i, j, size; if (*attrlist == '\0') @@ -640,11 +640,15 @@ *attr_names_r = p_new(conn->pool, char *, size + 1); for (i = j = 0; i < size; i++) { - p = strchr(attr[i], '='); + /* allow spaces here so "foo=1, bar=2" works */ + attr_data = attr[i]; + while (*attr_data == ' ') attr_data++; + + p = strchr(attr_data, '='); if (p == NULL) - name = value = p_strdup(conn->pool, attr[i]); - else if (p != attr[i]) { - name = p_strdup_until(conn->pool, attr[i], p); + name = value = p_strdup(conn->pool, attr_data); + else if (p != attr_data) { + name = p_strdup_until(conn->pool, attr_data, p); value = p_strdup(conn->pool, p + 1); } else { /* == */