diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index 96536ff3bde39..ff2b37ae09f0b 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -1729,7 +1729,11 @@ static void gmp_init_random(void) /* Initialize */ gmp_randinit_mt(GMPG(rand_state)); /* Seed */ - gmp_randseed_ui(GMPG(rand_state), GENERATE_SEED()); + zend_long seed = 0; + if (php_random_bytes_silent(&seed, sizeof(zend_long)) == FAILURE) { + seed = GENERATE_SEED(); + } + gmp_randseed_ui(GMPG(rand_state), seed); GMPG(rand_initialized) = 1; }