Empty name for group list must be quoted.

Test case:

  { { name = NULL, mailbox = "", domain = NULL }, { name = NULL, mailbox = 
NULL, domain = NULL } }

converts to:

  "":;
---
 src/lib-mail/message-address.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lib-mail/message-address.c b/src/lib-mail/message-address.c
index efa91fd..9ce4a55 100644
--- a/src/lib-mail/message-address.c
+++ b/src/lib-mail/message-address.c
@@ -357,8 +357,12 @@ void message_address_write(string_t *str, const struct 
message_address *addr)
                        if (!in_group) {
                                /* beginning of group. mailbox is the group
                                   name, others are NULL. */
-                               if (addr->mailbox != NULL)
+                               if (addr->mailbox != NULL && *addr->mailbox != 
'\0') {
                                        str_append(str, addr->mailbox);
+                               } else {
+                                       /* empty group name needs to be quoted 
*/
+                                       str_append(str, "\"\"");
+                               }
                                str_append(str, ": ");
                                first = TRUE;
                        } else {
-- 
1.7.9.5

Reply via email to