1dca155fe3fa (log: handle integer overflow in timestamps, 2014-02-24) assigns the result of strtol() to an 'int' and then checks it against LONG_MIN and LONG_MAX, indicating underflow or overflow, even though 'int' may not be large enough to represent those values. On Mac, the compiler complains: warning: comparison of constant 9223372036854775807 with expression of type 'int' is always false [-Wtautological-constant-out-of-range-compare] if (<<tz == LONG_MAX>> || tz == LONG_MIN) Similarly for the LONG_MIN case. Fix this. Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> --- Alternately, the result of strtol() could be assigned temporarily to a 'long', compared against LONG_MIN and LONG_MAX, and then assigned to the 'int' "tz" variable. I chose the 'errno' approach instead because its dead obvious, even to the most casual reader who hasn't checked the strtol() man page, that it's handling a conversion failure. However, I could go either way. This patch is atop 'next'. pretty.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pretty.c b/pretty.c index 3b811ed..8903116 100644 --- a/pretty.c +++ b/pretty.c @@ -403,10 +403,10 @@ static const char *show_ident_date(const struct ident_split *ident, date = strtoul(ident->date_begin, NULL, 10); if (date_overflows(date)) date = 0; - else { - if (ident->tz_begin && ident->tz_end) - tz = strtol(ident->tz_begin, NULL, 10); - if (tz == LONG_MAX || tz == LONG_MIN) + else if (ident->tz_begin && ident->tz_end) { + errno = 0; + tz = strtol(ident->tz_begin, NULL, 10); + if (errno) tz = 0; } return show_date(date, tz, mode); -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html