commit 92f2099: [Minor] Automatically init xoroshifto PRG
Vsevolod Stakhov
vsevolod at highsecure.ru
Mon Mar 15 21:07:05 UTC 2021
Author: Vsevolod Stakhov
Date: 2021-03-15 20:19:48 +0000
URL: https://github.com/rspamd/rspamd/commit/92f20993f94c91ad03213c5fcc2984ee3b487a67
[Minor] Automatically init xoroshifto PRG
---
src/libutil/util.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/libutil/util.c b/src/libutil/util.c
index 47856f716..49d61e87e 100644
--- a/src/libutil/util.c
+++ b/src/libutil/util.c
@@ -1766,7 +1766,19 @@ rspamd_random_double (void)
}
-static guint64 xorshifto_seed[4];
+static guint64*
+xorshifto_seed (void)
+{
+ static guint64 xorshifto_seed[4];
+ static bool initialized = false;
+
+ if (G_UNLIKELY(!initialized)) {
+ ottery_rand_bytes((void *)xorshifto_seed, sizeof (xorshifto_seed));
+ initialized = true;
+ }
+
+ return xorshifto_seed;
+}
static inline guint64
xoroshiro_rotl (const guint64 x, int k) {
@@ -1776,7 +1788,7 @@ xoroshiro_rotl (const guint64 x, int k) {
gdouble
rspamd_random_double_fast (void)
{
- return rspamd_random_double_fast_seed (xorshifto_seed);
+ return rspamd_random_double_fast_seed (xorshifto_seed());
}
/* xoshiro256+ */
@@ -1822,13 +1834,13 @@ rspamd_random_uint64_fast_seed (guint64 seed[4])
guint64
rspamd_random_uint64_fast (void)
{
- return rspamd_random_uint64_fast_seed (xorshifto_seed);
+ return rspamd_random_uint64_fast_seed (xorshifto_seed());
}
void
rspamd_random_seed_fast (void)
{
- ottery_rand_bytes (xorshifto_seed, sizeof (xorshifto_seed));
+ (void)xorshifto_seed();
}
gdouble
More information about the Commits
mailing list