From: Michael Elkins Date: Thu, 3 Jan 2013 19:04:35 +0000 (+0000) Subject: Fix memory leak when multiple x-label or supersedes header fields exist in the header. X-Git-Tag: mutt-1-5-22-rel~40 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ee4cd7df4705a384aa17f603a8c5e61358c5b5da;p=mutt Fix memory leak when multiple x-label or supersedes header fields exist in the header. In order to keep the current behavior where the value of the last header field present is the one used, free any previous value. --- diff --git a/parse.c b/parse.c index acf0621f..28889160 100644 --- a/parse.c +++ b/parse.c @@ -1220,7 +1220,10 @@ int mutt_parse_rfc822_line (ENVELOPE *e, HEADER *hdr, char *line, char *p, short } else if ((!ascii_strcasecmp ("upersedes", line + 1) || !ascii_strcasecmp ("upercedes", line + 1)) && hdr) + { + FREE(&e->supersedes); e->supersedes = safe_strdup (p); + } break; case 't': @@ -1259,6 +1262,7 @@ int mutt_parse_rfc822_line (ENVELOPE *e, HEADER *hdr, char *line, char *p, short } else if (ascii_strcasecmp (line+1, "-label") == 0) { + FREE(&e->x_label); e->x_label = safe_strdup(p); matched = 1; }