diff --git a/src/basic/random-util.c b/src/basic/random-util.c index 23951c0181..071a41f186 100644 --- a/src/basic/random-util.c +++ b/src/basic/random-util.c @@ -144,6 +144,7 @@ void initialize_srand(void) { #if HAVE_SYS_AUXV_H const void *auxv; #endif + uint64_t k; if (srand_called) return; @@ -164,6 +165,9 @@ void initialize_srand(void) { x ^= (unsigned) now(CLOCK_REALTIME); x ^= (unsigned) gettid(); + if (rdrand64(&k) >= 0) + x ^= (unsigned) k; + srand(x); srand_called = true; }