mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
c36f64aa6d
When using a timezone file with a truncated starting time, generated by the zic in IANA tzcode-2021d a.k.a. tzlib-2021d (also in tzlib-2021e; current as of this writing), glibc asserts in __tzfile_read (on e.g. tzset() for this file) and you may find lines matching "tzfile.c:435: __tzfile_read: Assertion `num_types == 1' failed" in your syslog. One example of such a file is the tzfile for Asuncion generated by tzlib-2021e as follows, using the tzlib-2021e zic: "zic -d DEST -r @1546300800 -L /dev/null -b slim SOURCE/southamerica". Note that in its type 2 header, it has two entries in its "time-types" array (types), but only one entry in its "transition types" array (type_idxs). This is valid and expected already in the published RFC8536, and not even frowned upon: "Local time for timestamps before the first transition is specified by the first time type (time type 0)" ... "every nonzero local time type index SHOULD appear at least once in the transition type array". Note the "nonzero ... index". Until the 2021d zic, index 0 has been shared by the first valid transition but with 2021d it's separate, set apart as a placeholder and only "implicitly" indexed. (A draft update of the RFC mandates that the entry at index 0 is a placeholder in this case, hence can no longer be shared.) * time/tzfile.c (__tzfile_read): Don't assert when no transitions are found. Co-authored-by: Christopher Wong <Christopher.Wong@axis.com> |
||
---|---|---|
.. | ||
bits/types | ||
sys | ||
adjtime.c | ||
alt_digit.c | ||
asctime.c | ||
bug-asctime_r.c | ||
bug-asctime.c | ||
bug-getdate1.c | ||
bug-mktime1.c | ||
bug-mktime4.c | ||
clock_getcpuclockid.c | ||
clock_getres.c | ||
clock_gettime.c | ||
clock_nanosleep.c | ||
clock_settime.c | ||
clock.c | ||
clocktest.c | ||
ctime_r.c | ||
ctime.c | ||
datemsk | ||
Depend | ||
difftime.c | ||
dysize.c | ||
era.c | ||
ftime.c | ||
getdate.c | ||
getitimer.c | ||
gettimeofday.c | ||
gmtime.c | ||
lc-time-cleanup.c | ||
localtime.c | ||
Makefile | ||
mktime-internal.h | ||
mktime.c | ||
offtime.c | ||
setitimer.c | ||
settimeofday.c | ||
settimezone.c | ||
stime.c | ||
strftime_l.c | ||
strftime.c | ||
strptime_l.c | ||
strptime.c | ||
test_time.c | ||
time.c | ||
time.h | ||
timegm.c | ||
timespec_get.c | ||
timespec_getres.c | ||
tst_wcsftime.c | ||
tst-adjtime-time64.c | ||
tst-adjtime.c | ||
tst-clock2-time64.c | ||
tst-clock2.c | ||
tst-clock_nanosleep-time64.c | ||
tst-clock_nanosleep.c | ||
tst-clock_settime-time64.c | ||
tst-clock_settime.c | ||
tst-clock-time64.c | ||
tst-clock.c | ||
tst-cpuclock1-time64.c | ||
tst-cpuclock1.c | ||
tst-ctime-time64.c | ||
tst-ctime.c | ||
tst-difftime-time64.c | ||
tst-difftime.c | ||
tst-ftime_l.c | ||
tst-ftime.c | ||
tst-getdate.c | ||
tst-gmtime-time64.c | ||
tst-gmtime.c | ||
tst-itimer-time64.c | ||
tst-itimer.c | ||
tst-mktime2.c | ||
tst-mktime3.c | ||
tst-mktime4-time64.c | ||
tst-mktime4.c | ||
tst-mktime.c | ||
tst-posixtz.c | ||
tst-settimeofday-time64.c | ||
tst-settimeofday.c | ||
tst-strftime2.c | ||
tst-strftime3.c | ||
tst-strftime.c | ||
tst-strptime2.c | ||
tst-strptime3.c | ||
tst-strptime-whitespace.c | ||
tst-strptime.c | ||
tst-timegm-time64.c | ||
tst-timegm.c | ||
tst-timespec_get-time64.c | ||
tst-timespec_get.c | ||
tst-timespec_getres-time64.c | ||
tst-timespec_getres.c | ||
tst-tzname.c | ||
tst-y2039-time64.c | ||
tst-y2039.c | ||
tzfile.c | ||
tzset.c | ||
Versions | ||
wcsftime_l.c | ||
wcsftime.c |