+2017-09-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ parse-datetime, posixtm: avoid uninit access
+ * lib/parse-datetime.y (parse_datetime2):
+ * lib/posixtm.c (posixtime):
+ Do not access uninitialized storage, even though the resulting
+ value is never used.
+
2017-09-25 Bruno Haible <bruno@clisp.org>
vma-iter: Improvements for BSD platforms.
if (pc.local_zones_seen)
tm.tm_isdst = pc.local_isdst;
- tm0 = tm;
+ tm0.tm_sec = tm.tm_sec;
+ tm0.tm_min = tm.tm_min;
+ tm0.tm_hour = tm.tm_hour;
+ tm0.tm_mday = tm.tm_mday;
+ tm0.tm_mon = tm.tm_mon;
+ tm0.tm_year = tm.tm_year;
+ tm0.tm_isdst = tm.tm_isdst;
Start = mktime_z (tz, &tm);
dbg_printf (_("error: tzalloc (\"%s\") failed\n"), tz2buf);
goto fail;
}
- tm = tm0;
+ tm.tm_sec = tm0.tm_sec;
+ tm.tm_min = tm0.tm_min;
+ tm.tm_hour = tm0.tm_hour;
+ tm.tm_mday = tm0.tm_mday;
+ tm.tm_mon = tm0.tm_mon;
+ tm.tm_year = tm0.tm_year;
+ tm.tm_isdst = tm0.tm_isdst;
Start = mktime_z (tz2, &tm);
repaired = mktime_ok (tz2, &tm0, &tm, Start);
tzfree (tz2);
if (! posix_time_parse (&tm0, s, syntax_bits))
return false;
- tm1 = tm0;
+ tm1.tm_sec = tm0.tm_sec;
+ tm1.tm_min = tm0.tm_min;
+ tm1.tm_hour = tm0.tm_hour;
+ tm1.tm_mday = tm0.tm_mday;
+ tm1.tm_mon = tm0.tm_mon;
+ tm1.tm_year = tm0.tm_year;
tm1.tm_isdst = -1;
t = mktime (&tm1);