diff --git a/libs/libc/time/lib_localtime.c b/libs/libc/time/lib_localtime.c index a777c87a1dd..c6e979010c7 100644 --- a/libs/libc/time/lib_localtime.c +++ b/libs/libc/time/lib_localtime.c @@ -812,6 +812,10 @@ static int tzload(FAR const char *name, */ memset(&sp->chars[i], 0, CHARS_EXTRA); + + /* Read leap seconds, discarding those out of time_t range. */ + + leapcnt = 0; for (i = 0; i < sp->leapcnt; ++i) { int_fast64_t tr = stored == 4 ? detzcode(p) : detzcode64(p); @@ -1717,7 +1721,7 @@ static int tzparse(FAR const char *name, FAR struct state_s *sp, janoffset + endtime) && atlo <= sp->ats[timecnt]) { - sp->types[timecnt++] = !reversed; + sp->types[timecnt++] = reversed; } }