diff options
| author | Dan Moschuk <dan@FreeBSD.org> | 1999-11-29 19:23:35 +0000 |
|---|---|---|
| committer | Dan Moschuk <dan@FreeBSD.org> | 1999-11-29 19:23:35 +0000 |
| commit | e6082d1936f6269db744aa6ae6e2761a77580ab7 (patch) | |
| tree | 507d48e9a5b49aeaa943e236461d4fb612c17d26 /sys/libkern | |
| parent | 8b6c02f328e21efda4d5de8c79d8b553e8b4ce2f (diff) | |
Notes
Diffstat (limited to 'sys/libkern')
| -rw-r--r-- | sys/libkern/arc4random.c | 8 |
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++) { |
