[tor-commits] [tor/master] Only check cert expiry vs TIME_MAX when time_t is less than 64-bit

nickm at torproject.org nickm at torproject.org
Fri Nov 18 01:13:58 UTC 2016


commit 00bdd56b18e1441510e770b16bd869968839153b
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Nov 3 19:29:52 2016 -0400

    Only check cert expiry vs TIME_MAX when time_t is less than 64-bit
    
    Fixes issue 20558 / CID 1375988.
---
 src/or/torcert.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/or/torcert.c b/src/or/torcert.c
index 852def9..6bc880a 100644
--- a/src/or/torcert.c
+++ b/src/or/torcert.c
@@ -156,11 +156,12 @@ tor_cert_parse(const uint8_t *encoded, const size_t len)
   cert->encoded_len = len;
 
   memcpy(cert->signed_key.pubkey, parsed->certified_key, 32);
-  const int64_t valid_until_64 = ((int64_t)parsed->exp_field) * 3600;
+  int64_t valid_until_64 = ((int64_t)parsed->exp_field) * 3600;
+#if SIZEOF_TIME_T < SIZEOF_INT64_T
   if (valid_until_64 > TIME_MAX)
-    cert->valid_until = TIME_MAX - 1;
-  else
-    cert->valid_until = (time_t) valid_until_64;
+    valid_until_64 = TIME_MAX - 1;
+#endif
+  cert->valid_until = (time_t) valid_until_64;
   cert->cert_type = parsed->cert_type;
 
   for (unsigned i = 0; i < ed25519_cert_getlen_ext(parsed); ++i) {





More information about the tor-commits mailing list