#3878: mtime to -1 for about 1% of the mails
-------------------------+-------------------------
  Reporter:  uxmutt      |      Owner:  mutt-dev
      Type:  defect      |     Status:  reopened
  Priority:  major       |  Milestone:
 Component:  maildir/mh  |    Version:
Resolution:              |   Keywords:  utime mtime
-------------------------+-------------------------
Changes (by code@…):

 * status:  closed => reopened
 * resolution:  fixed =>


Comment:

 {{{
 On Sun, Sep 25, 2016 at 05:34:59PM -0000, Mutt wrote:

 Please do note that -1 is a perfectly valid, if unlikely, time_t.  It
 corresponds to 23:59:59 Dec 31, 1969.  That date really did happen, as
 my parents will attest. ;-)  (I was not to be born for a few months
 yet, so...)

 A date of 0 is also perfectly valid.  If you can do basic arithmetic I
 bet you'll be able to guess what date that corresponds to.

 So, if you want to make sure this will never have sloppy/wrong answers,
 mutt_parse_date() should probably be modified to have something like
 the following prototype:

 /* returns 0 (false) if parse fails, 1 (true) if succeeds */
 int mutt_parse_date(const char *a, Header *b, time_t *c);

 And then it should set *c = the parsed time, if and only if it
 succeeds.  But you also need a way to indicate whether hdr->received
 contains a valid time.  One way to do that is to make it a pointer to
 a dynamic time_t, where NULL indicates it is not valid.  If you want
 to avoid the dynamic allocation, you'll need a flag.

 Granted, it's unlikely most users will have e-mails dating from
 approximately New Years 1970, since e-mail wasn't invented until 1971,
 but...  =8^)
 }}}

--
Ticket URL: <https://dev.mutt.org/trac/ticket/3878#comment:5>
Mutt <http://www.mutt.org/>
The Mutt mail user agent

Reply via email to