HowardHinnant / date

A date and time library based on the C++11/14/17 <chrono> header
Other
3.07k stars 669 forks source link

Support tz databases from release 2023d and newer by adding new zonenow.tab file to ignore list #829

Open enolan-maystreet opened 1 month ago

enolan-maystreet commented 1 month ago

date's internal init_tzdb function iterates through the files provided by the tz database, and init_tzdb contains a list of files that should not be interpreted as being in TZif format.

The 2023d release of the tz database added a new file that is not in TZif format, zonenow.tab. However, this file had not been added to the ignore list.

This caused date to intepret the zonenow.tab file as a TZif file, which caused assertions to fire in debug mode if the user attempted to load its associated time_zone, causing load_header() to be invoked on the file, which would find that it did not contain a 'TZif' magic number.

This commit addresses the issue by adding the file to the ignore list.

The announcement on the tz database mailing list which describes the addition of zonenow.tab can be found at this link:

https://mm.icann.org/pipermail/tz-announce/2023-December/000080.html