Prechádzať zdrojové kódy

Always increment delays by at least 1.

Nick Mathewson 7 rokov pred
rodič
commit
85970f7047
1 zmenil súbory, kde vykonal 6 pridanie a 3 odobranie
  1. 6 3
      src/or/directory.c

+ 6 - 3
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;