From 2caf8b3c1a4dea929715ebd5a7fb4746b9058134 Mon Sep 17 00:00:00 2001 From: dan Date: Mon, 29 Nov 1999 19:23:35 +0000 Subject: In the extremely miniscule chance that read_random returns <= 0, don't try and use that return code as a modulus (panics are bad, mmmkay?) --- sys/libkern/arc4random.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys/libkern') diff --git a/sys/libkern/arc4random.c b/sys/libkern/arc4random.c index b6d9070..4eefb69 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++) { -- cgit v1.1