diff options
author | Jeff King <peff@peff.net> | 2014-02-24 02:49:05 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-24 10:12:58 -0800 |
commit | 2b15846dbfb31df10a69a4d56ae944a01563bc07 (patch) | |
tree | 22f680d01100b90ecec09f40d7f442d11d89024f /date.c | |
parent | 1dca155fe3fac29e847d2d8ff1087d892a129a9c (diff) | |
download | git-2b15846dbfb31df10a69a4d56ae944a01563bc07.tar.gz |
log: do not segfault on gmtime errors
Many code paths assume that show_date and show_ident_date
cannot return NULL. For the most part, we handle missing or
corrupt timestamps by showing the epoch time t=0.
However, we might still return NULL if gmtime rejects the
time_t we feed it, resulting in a segfault. Let's catch this
case and just format t=0.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'date.c')
-rw-r--r-- | date.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -184,8 +184,10 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode) tz = local_tzoffset(time); tm = time_to_tm(time, tz); - if (!tm) - return NULL; + if (!tm) { + tm = time_to_tm(0, 0); + tz = 0; + } strbuf_reset(&timebuf); if (mode == DATE_SHORT) |