blob: c3184a40ed7208a3072d64cc52557df348d41157 [file] [log] [blame]
From 939b02b33ae29bc0d642570c1dcfd4b339037d19 Mon Sep 17 00:00:00 2001
From: Kevin McCarthy <kevin@8t8.us>
Date: Sun, 17 Jan 2021 10:53:19 -0800
Subject: [PATCH] Don't allocate a group terminator unless we are in a
group-list.
This will reduce memory allocation for garbage/spam address lists.
It also makes no sense to store a terminator when there wasn't a
display-name indicating the start of a group.
[Retrieved from:
https://git.launchpad.net/ubuntu/+source/mutt/plain/debian/patches/CVE-2021-3181-2.patch?h=import/1.14.6-1ubuntu0.2]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
rfc822.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: mutt-1.14.6/rfc822.c
===================================================================
--- mutt-1.14.6.orig/rfc822.c
+++ mutt-1.14.6/rfc822.c
@@ -378,7 +378,7 @@ add_addrspec (ADDRESS **top, ADDRESS **l
ADDRESS *rfc822_parse_adrlist (ADDRESS *top, const char *s)
{
- int ws_pending, nl;
+ int ws_pending, nl, in_group = 0;
#ifdef EXACT_ADDRESS
const char *begin;
#endif
@@ -455,6 +455,7 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
terminate_buffer (phrase, phraselen);
cur->mailbox = safe_strdup (phrase);
cur->group = 1;
+ in_group = 1;
if (last)
last->next = cur;
@@ -491,11 +492,12 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
#endif
/* add group terminator */
- if (last)
+ if (last && in_group)
{
last->next = rfc822_new_address ();
last = last->next;
}
+ in_group = 0;
phraselen = 0;
commentlen = 0;