summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorderaadt <>2014-06-15 01:49:06 +0000
committerderaadt <>2014-06-15 01:49:06 +0000
commitee621a65ad535c3e4b2cf212f7bf2ec1eef52906 (patch)
tree0902dc8527272017dac214cdd2500ebf4fed841b /src
parent49d9bfe1c1e2d2b68738838188970b60c82b7cfd (diff)
downloadopenbsd-ee621a65ad535c3e4b2cf212f7bf2ec1eef52906.tar.gz
openbsd-ee621a65ad535c3e4b2cf212f7bf2ec1eef52906.tar.bz2
openbsd-ee621a65ad535c3e4b2cf212f7bf2ec1eef52906.zip
In srandomdev(), use arc4random_buf() instead of from the kernel.
discussion with matthew
Diffstat (limited to 'src')
-rw-r--r--src/lib/libc/stdlib/random.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lib/libc/stdlib/random.c b/src/lib/libc/stdlib/random.c
index 7ed911bf65..0c388983be 100644
--- a/src/lib/libc/stdlib/random.c
+++ b/src/lib/libc/stdlib/random.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: random.c,v 1.20 2014/06/13 15:35:34 deraadt Exp $ */ 1/* $OpenBSD: random.c,v 1.21 2014/06/15 01:49:06 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 1983 Regents of the University of California. 3 * Copyright (c) 1983 Regents of the University of California.
4 * All rights reserved. 4 * All rights reserved.
@@ -242,8 +242,7 @@ __warn_references(srandom,
242 * srandomdev: 242 * srandomdev:
243 * 243 *
244 * Many programs choose the seed value in a totally predictable manner. 244 * Many programs choose the seed value in a totally predictable manner.
245 * This often causes problems. We seed the generator using random 245 * This often causes problems. We seed the generator using random data.
246 * data from the kernel.
247 * Note that this particular seeding procedure can generate states 246 * Note that this particular seeding procedure can generate states
248 * which are impossible to reproduce by calling srandom() with any 247 * which are impossible to reproduce by calling srandom() with any
249 * value, since the succeeding terms in the state buffer are no longer 248 * value, since the succeeding terms in the state buffer are no longer
@@ -260,7 +259,7 @@ srandomdev(void)
260 else 259 else
261 len = rand_deg * sizeof(state[0]); 260 len = rand_deg * sizeof(state[0]);
262 261
263 getentropy(state, len); 262 arc4random_buf(buf, len);
264 263
265 if (rand_type != TYPE_0) { 264 if (rand_type != TYPE_0) {
266 fptr = &state[rand_sep]; 265 fptr = &state[rand_sep];