From: Timo Sirainen Date: Wed, 7 Jun 2017 09:34:17 +0000 (+0300) Subject: lib-mail: message_address_write() - Don't add '@' if domain is missing X-Git-Tag: 2.3.0.rc1~1498 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a2a171ae0a80ee8883956ac11028199339cda77;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: message_address_write() - Don't add '@' if domain is missing --- diff --git a/src/lib-mail/message-address.c b/src/lib-mail/message-address.c index 4e9ea4876f..7fc99d054a 100644 --- a/src/lib-mail/message-address.c +++ b/src/lib-mail/message-address.c @@ -450,8 +450,10 @@ void message_address_write(string_t *str, const struct message_address *addr) i_assert(addr->mailbox != NULL); str_append_maybe_escape(str, addr->mailbox, FALSE); - str_append_c(str, '@'); - str_append(str, addr->domain); + if (addr->domain[0] != '\0') { + str_append_c(str, '@'); + str_append(str, addr->domain); + } } else { /* name and/or route. use full Name */ i_assert(addr->mailbox != NULL); @@ -473,8 +475,10 @@ void message_address_write(string_t *str, const struct message_address *addr) str_append_c(str, ':'); } str_append_maybe_escape(str, addr->mailbox, FALSE); - str_append_c(str, '@'); - str_append(str, addr->domain); + if (addr->domain[0] != '\0') { + str_append_c(str, '@'); + str_append(str, addr->domain); + } str_append_c(str, '>'); } diff --git a/src/lib-mail/test-message-address.c b/src/lib-mail/test-message-address.c index 897ce6b71f..05db36e3fa 100644 --- a/src/lib-mail/test-message-address.c +++ b/src/lib-mail/test-message-address.c @@ -38,11 +38,11 @@ static void test_message_address(void) { NULL, NULL, "@route,@route2", "user", "domain", FALSE } }, { "hello <@route ,@route2:user@domain>", "hello <@route,@route2:user@domain>", { NULL, "hello", "@route,@route2", "user", "domain", FALSE } }, - { "hello", "hello <@>", + { "hello", "hello <>", { NULL, "hello", NULL, "", "", TRUE } }, - { "user (hello)", "hello ", + { "user (hello)", "hello ", { NULL, "hello", NULL, "user", "", TRUE } }, - { "hello ", "hello ", + { "hello ", "hello ", { NULL, "hello", NULL, "user", "", TRUE } }, { "@domain", NULL, { NULL, NULL, NULL, "", "domain", TRUE } },