diff options
author | Andrew Fresh <afresh1@cvs.openbsd.org> | 2014-12-30 20:46:46 +0000 |
---|---|---|
committer | Andrew Fresh <afresh1@cvs.openbsd.org> | 2014-12-30 20:46:46 +0000 |
commit | 8c76c5b31e47d18e12915765a6aa44f742a8d735 (patch) | |
tree | dfbf2481d16f96a36e97b9aecfabbd73ec35fbbc /gnu | |
parent | 5c4edef4864b9b2172dd7ca5fb57502652baf783 (diff) |
Make perl use our (arc4random backed) drand48 when unseeded
uses srand48_deterministic if a seed is provided.
seems fine millert@
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/usr.bin/perl/Configure | 6 | ||||
-rw-r--r-- | gnu/usr.bin/perl/pp.c | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure index 8e22a5fc7b2..d34fded7ee1 100644 --- a/gnu/usr.bin/perl/Configure +++ b/gnu/usr.bin/perl/Configure @@ -19620,9 +19620,9 @@ case "$ccflags" in ;; esac -randfunc=Perl_drand48 -drand01="Perl_drand48()" -seedfunc="Perl_drand48_init" +randfunc=drand48 +drand01="drand48()" +seedfunc="srand48" randbits=48 randseedtype=U32 diff --git a/gnu/usr.bin/perl/pp.c b/gnu/usr.bin/perl/pp.c index 4ec6887dfd6..79abdb01f89 100644 --- a/gnu/usr.bin/perl/pp.c +++ b/gnu/usr.bin/perl/pp.c @@ -2785,9 +2785,12 @@ PP(pp_srand) } } else { - anum = seed(); + anum = 0; } + if (anum) + (void)srand48_deterministic((Rand_seed_t)anum); + else (void)seedDrand01((Rand_seed_t)anum); PL_srand_called = TRUE; if (anum) |