[Dovecot] Bug in db-ldap.c with Dovecot1.1rc3

richs at whidbey.net richs at whidbey.net
Fri Mar 14 02:00:57 EET 2008


If using LDAP as a userdb with a "quota_rule" configured, the order of 
the LDAP entry can distort userdb results, depending on where the quota 
  attribute is found.

For instance, with this "dovecot-ldap.conf" snippet:

user_attrs = 
homeDirectory=home,uidNumber=uid,gidNumber=gid,quotaKb=quota_rule=*:storage=%$

And this example LDAP entry:

dn: uid=testuser,ou=people,dc=domain.com
uid: testuser
homeDirectory: /mail/testuser
gidNumber: 100
cn: testuser
quotaKb: 20480
uidNumber: 121212

When db_ldap_result_iterate_next_all() runs, "quotaKb" is encountered, 
which causes "ctx->template" to be set.

On the next iteration, "uidNumber" is encountered, but "ctx->template" 
is still set, causing the "uid" value to be prepended with "*:storage=".

This is reflected by an error in the log as:

	Invalid UID value '*:storage=121212'

This can be fixed by adding a line after 1118 to src/auth/db-ldap.c:

	ctx->template = NULL;

Hope this is helpful to someone,
-Rich


More information about the dovecot mailing list