Changeset 09530e6


Ignore:
Timestamp:
Oct 7, 2017, 3:11:38 AM (7 years ago)
Author:
Anders Kaseorg <andersk@mit.edu>
Branches:
master
Children:
ee6b30f
Parents:
0c059f0
git-author:
Anders Kaseorg <andersk@mit.edu> (10/07/17 03:00:06)
git-committer:
Anders Kaseorg <andersk@mit.edu> (10/07/17 03:11:38)
Message:
owl_perlconfig_hashref2message: Don’t pass uninitialized tm_isdst to mktime

strptime doesn’t initialize tm_isdst, so mktime was offsetting the
time by ±1 hour depending on uninitialized memory.  Initializing
tm_isdst to a negative value causes it to guess.  It will still guess
incorrectly during one hour of every year, but at least now the
behavior is defined.

(Discovered by valgrind.)

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perlconfig.c

    r7dcef03 r09530e6  
    211211      g_free(m->timestr);
    212212      m->timestr = g_strdup(val);
     213      // FIXME: Daylight saving time will be guessed wrongly one hour per year!
     214      tm.tm_isdst = -1;
    213215      strptime(val, "%a %b %d %T %Y", &tm);
    214216      m->time = mktime(&tm);
Note: See TracChangeset for help on using the changeset viewer.