mirror of
https://git.musl-libc.org/git/musl
synced 2025-03-29 14:02:55 +03:00
perform minimal sanity checks on zoneinfo files loaded via TZ variable
previously, setting TZ to the pathname of a file which was not a valid zoneinfo file would usually cause programs using local time zone based operations to crash. the new code checks the file size and magic at the beginning of the file, which seems sufficient to prevent accidental misconfiguration from causing crashes. attempting to make fully-robust validation would be futile unless we wanted to drop use of mmap (shared zoneinfo) and instead read it into a local buffer, since such validation would be subject to race conditions with modification of the file.
This commit is contained in:
parent
0f2315b4af
commit
c3d9d172b1
@ -168,6 +168,11 @@ static void do_tzset()
|
||||
}
|
||||
if (!map) s = __gmt;
|
||||
}
|
||||
if (map && (map_size < 44 || memcmp(map, "TZif", 4))) {
|
||||
__munmap((void *)map, map_size);
|
||||
map = 0;
|
||||
s = __gmt;
|
||||
}
|
||||
|
||||
zi = map;
|
||||
if (map) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user