[tor-commits] [tor/master] Only check in-boundsness of seconds when time_t is smaller than i64

nickm at torproject.org nickm at torproject.org
Fri Mar 25 20:47:09 UTC 2016


commit 4bb44f2c15b3f9e9b63d229af938e8a321556215
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Mar 25 16:46:02 2016 -0400

    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.
---
 src/common/util.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/common/util.c b/src/common/util.c
index 820e867..2351faf 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;
 }



More information about the tor-commits mailing list