This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Regenerate perlapi and perltoc.
[perl5.git] / util.c
diff --git a/util.c b/util.c
index 7f38135..4a1a45f 100644 (file)
--- a/util.c
+++ b/util.c
@@ -4412,7 +4412,6 @@ Perl_get_hash_seed(pTHX)
      {
          /* Compute a random seed */
          (void)seedDrand01((Rand_seed_t)seed());
-         PL_srand_called = TRUE;
          myseed = (UV)(Drand01() * (NV)UV_MAX);
 #if RANDBITS < (UVSIZE * 8)
          /* Since there are not enough randbits to to reach all
@@ -4422,8 +4421,13 @@ Perl_get_hash_seed(pTHX)
          myseed +=
               (UV)(Drand01() * (NV)((1 << ((UVSIZE * 8 - RANDBITS))) - 1));
 #endif /* RANDBITS < (UVSIZE * 8) */
+         if (myseed == 0) { /* Superparanoia. */
+             myseed = (UV)(Drand01() * (NV)UV_MAX); /* One more chance. */
+             if (myseed == 0)
+                 Perl_croak(aTHX_ "Your random numbers are not that random");
+         }
      }
-     PL_hash_seed_set = TRUE;
+     PL_rehash_seed_set = TRUE;
 
      return myseed;
 }