[tor-commits] [tor/release-0.2.9] Fix get_delay() code to avoid TIME_MAX overflow, not INT_MAX.

nickm at torproject.org nickm at torproject.org
Mon Nov 7 14:32:41 UTC 2016


commit 1b22eae120ff379f7218b4e8b4fb62ed2bfede73
Author: Nick Mathewson <nickm at torproject.org>
Date:   Sun Nov 6 19:50:08 2016 -0500

    Fix get_delay() code to avoid TIME_MAX overflow, not INT_MAX.
    
    Fixes bug 20587; bugfix on 35bbf2e4a4e8ccb in 0.2.8.1-alpha.
---
 changes/bug20587   | 6 ++++++
 src/or/directory.c | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/changes/bug20587 b/changes/bug20587
new file mode 100644
index 0000000..a059334
--- /dev/null
+++ b/changes/bug20587
@@ -0,0 +1,6 @@
+
+  o Minor bugfixes (download timing):
+    - When determining when to download a directory object, handle times
+      after 2038 if the operating system supports that.  (Someday this will be
+      important!)  Fixes bug 20587; bugfix on 0.2.8.1-alpha.
+
diff --git a/src/or/directory.c b/src/or/directory.c
index 1f894d9..afe5796 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -3876,9 +3876,9 @@ download_status_schedule_get_delay(download_status_t *dls,
    * non-negative allows us to safely do the wrapping check below. */
   tor_assert(delay >= 0);
 
-  /* Avoid now+delay overflowing INT_MAX, by comparing with a subtraction
+  /* Avoid now+delay overflowing TIME_MAX, by comparing with a subtraction
    * that won't overflow (since delay is non-negative). */
-  if (delay < INT_MAX && now <= INT_MAX - delay) {
+  if (delay < INT_MAX && now <= TIME_MAX - delay) {
     dls->next_attempt_at = now+delay;
   } else {
     dls->next_attempt_at = TIME_MAX;





More information about the tor-commits mailing list