summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorAndrew Fresh <afresh1@cvs.openbsd.org>2014-12-30 20:46:46 +0000
committerAndrew Fresh <afresh1@cvs.openbsd.org>2014-12-30 20:46:46 +0000
commit8c76c5b31e47d18e12915765a6aa44f742a8d735 (patch)
treedfbf2481d16f96a36e97b9aecfabbd73ec35fbbc /gnu
parent5c4edef4864b9b2172dd7ca5fb57502652baf783 (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/Configure6
-rw-r--r--gnu/usr.bin/perl/pp.c5
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)