diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-09-08 10:22:01 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-09-08 10:22:01 -0400 |
commit | 280672bdbc2c694ebe17f9972657d118e84be723 (patch) | |
tree | 07e9d8b4620bf1c74602b0c780c29ec816004945 /src/common | |
parent | 81e3deeb54d2f3d022655c6a51f966ef44bf6fb3 (diff) | |
download | tor-280672bdbc2c694ebe17f9972657d118e84be723.tar.gz tor-280672bdbc2c694ebe17f9972657d118e84be723.zip |
Handle negative inputs to crypto_random_time_range().
(These inputs are possible when Shadow starts the world at time_t 0,
and breaks our assumption that Tor didn't exist in the 1970s.)
Fixes regression introduced in 241e6b09. Fixes #16980.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/crypto.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c index 6d4b0d7e16..815c2ec0c5 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -2440,7 +2440,8 @@ crypto_rand_uint64_range(uint64_t min, uint64_t max) time_t crypto_rand_time_range(time_t min, time_t max) { - return (time_t) crypto_rand_uint64_range(min, max); + tor_assert(min < max); + return min + (time_t)crypto_rand_uint64(max - min); } /** Return a pseudorandom 64-bit integer, chosen uniformly from the values |