]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-mail: test-message-address - Test NULs in display-name
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 17 Aug 2018 10:42:35 +0000 (13:42 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 30 Aug 2018 08:24:25 +0000 (11:24 +0300)
src/lib-mail/test-message-address.c

index e30bde2d15f0247ee31b72255c659083bd740930..67a88b1bd773fb2c18dc7f64e4ff81741945088a 100644 (file)
@@ -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,