]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Bug 23055: cast, then multiply when doing u32*u32->u64.
authorNick Mathewson <nickm@torproject.org>
Fri, 28 Jul 2017 14:31:12 +0000 (10:31 -0400)
committerNick Mathewson <nickm@torproject.org>
Fri, 28 Jul 2017 14:33:51 +0000 (10:33 -0400)
No backport, since this bug won't trigger until people make
certificates expiring after the Y2106 deadline.

CID 1415728

changes/bug23055 [new file with mode: 0644]
src/or/torcert.c

diff --git a/changes/bug23055 b/changes/bug23055
new file mode 100644 (file)
index 0000000..eee1397
--- /dev/null
@@ -0,0 +1,4 @@
+  o Minor bugfixes (certificate handling):
+    - Fix a time handling bug in Tor certificates set to expire after
+      the year 2106. Fixes bug 23055; bugfix on 0.3.0.1-alpha.
+      Found by Coverity as CID 1415728.
index 658e620ca509903de50fb794edc59b40f98e62a1..69b157446adb68a0f0254165c7e16e7c0ab8cf50 100644 (file)
@@ -393,7 +393,7 @@ rsa_ed25519_crosscert_check(const uint8_t *crosscert,
   }
 
   const uint32_t expiration_date = rsa_ed_crosscert_get_expiration(cc);
-  const uint64_t expiration_time = expiration_date * 3600;
+  const uint64_t expiration_time = ((uint64_t)expiration_date) * 3600;
 
   if (reject_if_expired_before < 0 ||
       expiration_time < (uint64_t)reject_if_expired_before) {