summaryrefslogtreecommitdiff
path: root/sys/libkern
diff options
context:
space:
mode:
authorDan Moschuk <dan@FreeBSD.org>1999-11-29 19:23:35 +0000
committerDan Moschuk <dan@FreeBSD.org>1999-11-29 19:23:35 +0000
commite6082d1936f6269db744aa6ae6e2761a77580ab7 (patch)
tree507d48e9a5b49aeaa943e236461d4fb612c17d26 /sys/libkern
parent8b6c02f328e21efda4d5de8c79d8b553e8b4ce2f (diff)
Notes
Diffstat (limited to 'sys/libkern')
-rw-r--r--sys/libkern/arc4random.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/libkern/arc4random.c b/sys/libkern/arc4random.c
index b6d9070807ae..4eefb6910727 100644
--- a/sys/libkern/arc4random.c
+++ b/sys/libkern/arc4random.c
@@ -41,8 +41,12 @@ arc4_randomstir (void)
int r, n;
r = read_random(key, sizeof(key));
- for (n = r; n < sizeof(key); n++)
- key[n] = key[n % r];
+ /* if r == 0 || -1, just use what was on the stack */
+ if (r > 0)
+ {
+ for (n = r; n < sizeof(key); n++)
+ key[n] = key[n % r];
+ }
for (n = 0; n < 256; n++)
{