[tor-commits] [tor/master] Make the crypto_rand_int_range return value right-exclusive.

nickm at torproject.org nickm at torproject.org
Thu Apr 23 13:21:49 UTC 2015


commit 6bf31543dcda169aa1840fd7e0a0e0ff8a5f9640
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Apr 21 11:30:21 2015 -0400

    Make the crypto_rand_int_range return value right-exclusive.
---
 src/common/crypto.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/common/crypto.c b/src/common/crypto.c
index 1c4eda9..24706cc 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -2317,23 +2317,23 @@ crypto_rand_int(unsigned int max)
   }
 }
 
-/** Return a pseudorandom integer, chosen uniformly from the values between
- * <b>min</b> and <b>max</b> inclusive.
+/** Return a pseudorandom integer, chosen uniformly from the values <i>i</i>
+ * such that <b>min</b> <= <i>i</i> &lt <b>max</b>.
  *
- * <b>min</b> MUST be between 0 and <b>max</b> - 1.
- * <b>max</b> MUST be bigger than <b>min</b> and <= to INT_MAX.
+ * <b>min</b> MUST be in range [0, <b>max</b>).
+ * <b>max</b> MUST be in range (min, INT_MAX].
  */
 int
 crypto_rand_int_range(unsigned int min, unsigned int max)
 {
-  tor_assert(min <= max);
+  tor_assert(min < max);
   tor_assert(max <= INT_MAX);
 
   /* The overflow is avoided here because crypto_rand_int() returns a value
    * between 0 and (max - min - 1) with max being <= INT_MAX and min <= max.
    * This is why we add 1 to the maximum value so we can actually get max as
    * a return value. */
-  return min + crypto_rand_int(max - min + 1);
+  return min + crypto_rand_int(max - min);
 }
 
 /** Return a pseudorandom 64-bit integer, chosen uniformly from the values
@@ -2398,7 +2398,7 @@ crypto_random_hostname(int min_rand_len, int max_rand_len, const char *prefix,
   if (min_rand_len > max_rand_len)
     min_rand_len = max_rand_len;
 
-  randlen = crypto_rand_int_range(min_rand_len, max_rand_len);
+  randlen = crypto_rand_int_range(min_rand_len, max_rand_len+1);
 
   prefixlen = strlen(prefix);
   resultlen = prefixlen + strlen(suffix) + randlen + 16;





More information about the tor-commits mailing list