[tor-commits] [tor/maint-0.2.9] Fix a BUG() warning from next_random_exponential_delay().

nickm at torproject.org nickm at torproject.org
Wed Dec 7 16:15:04 UTC 2016


commit 0815f96416676ace7cfdb5c29000d8cd6ee3459f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Dec 7 11:13:11 2016 -0500

    Fix a BUG() warning from next_random_exponential_delay().
    
    Fixes 20875; this code is as suggested by teor on the ticket.  Thanks!
---
 changes/bug20875   | 4 ++++
 src/or/directory.c | 6 ++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/changes/bug20875 b/changes/bug20875
new file mode 100644
index 0000000..6bba2cb
--- /dev/null
+++ b/changes/bug20875
@@ -0,0 +1,4 @@
+  o Minor bugfixes (download scheduling)
+    - Resolve a "bug" warning when considering a download schedule whose
+      delay had approached INT_MAX. Fixes 20875; bugfix on 0.2.9.5-alpha.
+
diff --git a/src/or/directory.c b/src/or/directory.c
index f4fd521..fce48c6 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -3787,10 +3787,12 @@ STATIC int
 next_random_exponential_delay(int delay, int max_delay)
 {
   /* Check preconditions */
+  if (BUG(max_delay < 0))
+    max_delay = 0;
   if (BUG(delay > max_delay))
     delay = max_delay;
-  if (BUG(delay == INT_MAX))
-    delay -= 1; /* prevent overflow */
+  if (delay == INT_MAX)
+    return INT_MAX; /* prevent overflow */
   if (BUG(delay < 0))
     delay = 0;
 



More information about the tor-commits mailing list