]> 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:22:24 +0000 (14:22 +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 170ec0343f67f3fd70441ae7c62bef10ff7ea523..bed99ea64d9ce1932cb1129d87c62460b394ec11 100644 (file)
@@ -238,7 +238,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;
                }