If tzp is not a null pointer, the behavior is unspecified.
tz_minuteswest is later multiplied by 60 which can overflow (if the value that happens to be in tz_minuteswest is large). When tig is compiled with integer overflow hardening (as is done on Chimera Linux) via the clang option -fsanitize=signed-integer-overflow this can result in tig crashing due to the overflow.
On musl libc
gettimeofday
(which is used by time_now) does not populate the timezone struct passed to it as POSIX says:tz_minuteswest is later multiplied by 60 which can overflow (if the value that happens to be in
tz_minuteswest
is large). When tig is compiled with integer overflow hardening (as is done on Chimera Linux) via the clang option-fsanitize=signed-integer-overflow
this can result in tig crashing due to the overflow.This PR initialises
tz
to prevent this.