]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-ldap: Don't reuse dict for different usernames.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 2 May 2016 11:21:06 +0000 (14:21 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 2 May 2016 11:23:25 +0000 (14:23 +0300)
Fixes doing priv/* lookups for multiple usernames.

This currently also means that each username will create a separate LDAP
connection, which isn't ideal. But this is probably better fixed in
lib-ldap code similar to how lib-sql does connection pooling.

src/lib-dict-extra/dict-ldap.c

index 5ea12daa6d1a6d0ae0400ff5f6b31be100dd1f83..586f8fc5bc9119ada61d0b1f6d895f2077277978 100644 (file)
@@ -239,7 +239,8 @@ int ldap_dict_init(struct dict *dict_driver, const char *uri,
        for(struct ldap_dict *ptr = ldap_dict_list;
            ptr != NULL;
            ptr = ptr->next) {
-               if (strcmp(ptr->uri, uri) == 0) {
+               if (strcmp(ptr->uri, uri) == 0 &&
+                   null_strcmp(ptr->username, set->username) == 0) {
                        *dict_r = (struct dict*)ptr;
                        return 0;
                }