From c56f8e22b5fadcc9a39e395e362d81d3942e8945 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 17 Aug 2018 13:42:35 +0300 Subject: [PATCH] lib-mail: test-message-address - Test NULs in display-name --- src/lib-mail/test-message-address.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lib-mail/test-message-address.c b/src/lib-mail/test-message-address.c index e30bde2d15..67a88b1bd7 100644 --- a/src/lib-mail/test-message-address.c +++ b/src/lib-mail/test-message-address.c @@ -339,6 +339,23 @@ static void test_message_address_nuls(void) test_end(); } +static void test_message_address_nuls_display_name(void) +{ + const unsigned char input[] = + "\"displayname\0nuls\" <\"user\0nuls\"@[domain\0nuls]>"; + const struct message_address output = { + NULL, "displayname\xEF\xBF\xBDnuls", NULL, "user\xEF\xBF\xBDnuls", + "[domain\xEF\xBF\xBDnuls]", FALSE + }; + const struct message_address *addr; + + test_begin("message address parsing with NULs in display-name"); + addr = message_address_parse(pool_datastack_create(), + input, sizeof(input)-1, UINT_MAX, 0); + test_assert(addr != NULL && cmp_addr(addr, &output)); + test_end(); +} + static void test_message_address_non_strict_dots(void) { const char *const inputs[] = { @@ -498,6 +515,7 @@ int main(void) static void (*const test_functions[])(void) = { test_message_address, test_message_address_nuls, + test_message_address_nuls_display_name, test_message_address_non_strict_dots, test_message_address_path, test_message_address_path_invalid,