From 2b15846dbfb31df10a69a4d56ae944a01563bc07 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Mon, 24 Feb 2014 02:49:05 -0500 Subject: 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 Signed-off-by: Junio C Hamano --- date.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'date.c') diff --git a/date.c b/date.c index 2dae471dd1..f64bbeb823 100644 --- a/date.c +++ b/date.c @@ -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) -- cgit v1.2.3