From 0f050a685f41b1cc53c1aa11a1eb5f9c1eb0baa0 Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Sun, 25 Sep 2016 13:11:03 -0700 Subject: [PATCH] Reset invalid parsed received dates to 0. (closes #3878) 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 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/parse.c b/parse.c index 8a7ccd18d..c75a8b1a6 100644 --- a/parse.c +++ b/parse.c @@ -1567,6 +1567,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) { -- 2.40.0