]> granicus.if.org Git - mutt/commitdiff
Reset invalid parsed received dates to 0. (closes #3878)
authorKevin McCarthy <kevin@8t8.us>
Sun, 25 Sep 2016 20:11:03 +0000 (13:11 -0700)
committerKevin McCarthy <kevin@8t8.us>
Sun, 25 Sep 2016 20:11:03 +0000 (13:11 -0700)
The actual problem in the ticket would be solved by d3f31cf9239e (see
#3798).  However there is still the bug that Mutt considers a
(hdr->received != 0) to be set and usable, despite not checking the
return value of mutt_parse_date().

Change mutt_read_rfc822_header() to unset an invalid received value
back to 0.  We don't do this inside mutt_read_rfc822_line() because
that would cause the next received line to be parsed.

parse.c

diff --git a/parse.c b/parse.c
index 92cfeb0ffa25ce8433fb15ac91f32daef92ee0f7..0ae559401bcb2d5c4435bd60980b16a0fe55873f 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -1455,6 +1455,12 @@ ENVELOPE *mutt_read_rfc822_header (FILE *f, HEADER *hdr, short user_hdrs,
        e->real_subj = e->subject;
     }
 
+    if (hdr->received < 0)
+    {
+      dprint(1,(debugfile,"read_rfc822_header(): resetting invalid received time to 0\n"));
+      hdr->received = 0;
+    }
+
     /* check for missing or invalid date */
     if (hdr->date_sent <= 0)
     {