diff options
Diffstat (limited to 'src/common/util.c')
-rw-r--r-- | src/common/util.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/common/util.c b/src/common/util.c index 03840402b7..49353a8ee1 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -5010,8 +5010,10 @@ tor_init_weak_random(tor_weak_rng_t *rng, unsigned seed) int32_t tor_weak_random(tor_weak_rng_t *rng) { - /* Here's a linear congruential generator. OpenBSD and glibc use it. We - * don't want to use windows's rand(), because that returns values in the + /* Here's a linear congruential generator. OpenBSD and glibc use these + * parameters; they aren't too bad, and should have maximal period over the + * range 0..INT32_MAX. We don't want to use the platform rand() or random(), + * since some platforms have bad weak RNGs that only return values in the * range 0..INT16_MAX, which just isn't enough. */ rng->state = (rng->state * 1103515245 + 12345) & 0x7fffffff; return (int32_t) rng->state; |