From 85970f70475af7f8bd6666cbdebf5bfa3095625d Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 7 Nov 2016 10:17:13 -0500 Subject: [PATCH] Always increment delays by at least 1. --- src/or/directory.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/or/directory.c b/src/or/directory.c index f83f622030..ee42e2cd9b 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -3803,11 +3803,14 @@ next_random_exponential_delay(int delay, int max_delay) } else if (delay) { max_increment = INT_MAX-1; } else { - max_increment = 1; /* we're always willing to slow down a little. */ + max_increment = 1; } - /* the + 1 here is so that we include the end of the interval */ - int increment = crypto_rand_int(max_increment+1); + if (BUG(max_increment < 1)) + max_increment = 1; + + /* the + 1 here is so that we always wait longer than last time. */ + int increment = crypto_rand_int(max_increment)+1; if (increment < max_delay - delay) return delay + increment;