]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: Fix encoding quoted localparts that end with "."
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 30 Jul 2019 11:15:11 +0000 (14:15 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 10 Sep 2019 07:02:12 +0000 (10:02 +0300)
For example "user..@example.com" or "user..test.@example.com" resulted
in an extra '"' prefix.

src/lib-smtp/smtp-address.c
src/lib-smtp/test-smtp-address.c

index bb31d34a67781777f6075ab99b90bc8f39d00396..1bae3301b30f000922be60b55a1eb5a1d2836da7 100644 (file)
@@ -540,7 +540,7 @@ void smtp_address_write(string_t *out,
                pblock = p;
        }
 
-       if (p == pblock) {
+       if (p == pblock && !quoted) {
                quoted = TRUE;
                str_insert(out, begin, "\"");
        }
index 30e649913978b526627983d05e1e8d6a6ba7b982..ad25f084105da7467270fd0420017dde3ef84e10 100644 (file)
@@ -94,6 +94,10 @@ valid_mailbox_parse_tests[] = {
                .input = "Abc..123@example.com",
                .output = "\"Abc..123\"@example.com",
                .address = { .localpart = "Abc..123", .domain = "example.com" },
+       }, {
+               .input = "Abc..@example.com",
+               .output = "\"Abc..\"@example.com",
+               .address = { .localpart = "Abc..", .domain = "example.com" },
        }
 };