diff options
Diffstat (limited to 'src/or/circuitbuild.c')
-rw-r--r-- | src/or/circuitbuild.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 417d8ec8d8..da63ff6ef0 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -677,18 +677,20 @@ build_time_t circuit_build_times_generate_sample(circuit_build_times_t *cbt, double q_lo, double q_hi) { - uint64_t r = crypto_rand_uint64(UINT64_MAX-1); + double randval = crypto_rand_double(); build_time_t ret; double u; /* Generate between [q_lo, q_hi) */ + /*XXXX This is what nextafter is supposed to be for; we should use it on the + * platforms that support it. */ q_hi -= 1.0/(INT32_MAX); tor_assert(q_lo >= 0); tor_assert(q_hi < 1); tor_assert(q_lo < q_hi); - u = q_lo + ((q_hi-q_lo)*r)/(1.0*UINT64_MAX); + u = q_lo + (q_hi-q_lo)*randval; tor_assert(0 <= u && u < 1.0); /* circuit_build_times_calculate_timeout returns <= INT32_MAX */ |