jonas / tig

Text-mode interface for git
https://jonas.github.io/tig/
GNU General Public License v2.0
12.28k stars 604 forks source link

Initialise struct timezone in main_add_changes_commit #1291

Closed wezm closed 10 months ago

wezm commented 11 months ago

On musl libc gettimeofday (which is used by time_now) does not populate the timezone struct passed to it as POSIX says:

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.

This PR initialises tz to prevent this.

koutcher commented 10 months ago

LGTM, thanks