summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/srand48.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/stdlib/srand48.c')
-rw-r--r--lib/libc/stdlib/srand48.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/libc/stdlib/srand48.c b/lib/libc/stdlib/srand48.c
index f76b6cca86c..115b9e82aac 100644
--- a/lib/libc/stdlib/srand48.c
+++ b/lib/libc/stdlib/srand48.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: srand48.c,v 1.3 2005/08/08 08:05:37 espie Exp $ */
+/* $OpenBSD: srand48.c,v 1.4 2014/12/08 21:45:20 deraadt Exp $ */
/*
* Copyright (c) 1993 Martin Birgmeier
* All rights reserved.
@@ -18,9 +18,19 @@ extern unsigned short __rand48_seed[3];
extern unsigned short __rand48_mult[3];
extern unsigned short __rand48_add;
+int __rand48_deterministic;
+
void
srand48(long seed)
{
+ srand48_deterministic(seed);
+ __rand48_deterministic = 0;
+}
+
+void
+srand48_deterministic(long seed)
+{
+ __rand48_deterministic = 1;
__rand48_seed[0] = RAND48_SEED_0;
__rand48_seed[1] = (unsigned short) seed;
__rand48_seed[2] = (unsigned short) (seed >> 16);