From: Nick Mathewson Date: Fri, 25 Mar 2016 20:46:02 +0000 (-0400) Subject: Only check in-boundsness of seconds when time_t is smaller than i64 X-Git-Tag: tor-0.2.8.2-alpha~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bb44f2c15b3f9e9b63d229af938e8a321556215;p=thirdparty%2Ftor.git Only check in-boundsness of seconds when time_t is smaller than i64 Otherwise coverity complains that we're checking an whether an int64 is less than INT64_MIN, which of course it isn't. Fixes CID 1357176. Not in any released Tor. --- diff --git a/src/common/util.c b/src/common/util.c index 820e8672ec..2351faf503 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1528,11 +1528,14 @@ tor_timegm(const struct tm *tm, time_t *time_out) seconds = minutes*60 + tm->tm_sec; /* Check that "seconds" will fit in a time_t. On platforms where time_t is * 32-bit, this check will fail for dates in and after 2038. - * "seconds" can't be negative, because "year" >= 1970. */ + * + * We already know that "seconds" can't be negative because "year" >= 1970 */ +#if SIZEOF_TIME_T < 8 if (seconds < TIME_MIN || seconds > TIME_MAX) { log_warn(LD_BUG, "Result does not fit in tor_timegm"); return -1; } +#endif *time_out = (time_t)seconds; return 0; }