]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Fix reading settings when local_name has multiple names
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 28 Jun 2018 09:23:00 +0000 (12:23 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 28 Jun 2018 14:46:33 +0000 (14:46 +0000)
Only the last name was matching. For example with local_name "one two
three" { ...  } only "three" matched.

src/lib-master/master-service-settings-cache.c

index 3126f1127d65e71332ed8331aa18e430e7502407..06f8c64a16307b2acd0053caca47ac53c9030483 100644 (file)
@@ -125,11 +125,11 @@ match_local_name(const char *local_name,
        /* Handle multiple names separated by spaces in local_name
           * Ex: local_name "mail.domain.tld domain.tld mx.domain.tld" { ... } */
        const char *ptr;
-       while((ptr = strchr(local_name, ' ')) != NULL) {
-               if (dns_match_wildcard(filter_local_name,
-                   t_strdup_until(local_name, ptr)) == 0)
+       while((ptr = strchr(filter_local_name, ' ')) != NULL) {
+               if (dns_match_wildcard(local_name,
+                   t_strdup_until(filter_local_name, ptr)) == 0)
                        return TRUE;
-               local_name = ptr+1;
+               filter_local_name = ptr+1;
        }
        return dns_match_wildcard(local_name, filter_local_name) == 0;
 }