diff options
| author | Andrey A. Chernov <ache@FreeBSD.org> | 2003-02-03 10:29:47 +0000 |
|---|---|---|
| committer | Andrey A. Chernov <ache@FreeBSD.org> | 2003-02-03 10:29:47 +0000 |
| commit | b413a2949eefd46f5758d230663e6c8b2418fdf7 (patch) | |
| tree | 5e0e2f36b3b1593c0b6d9000642d11425bc0a2a2 /sys/libkern | |
| parent | 2f5ef51de2995dce0f81042d954bb9c8f00e7d9f (diff) | |
Notes
Diffstat (limited to 'sys/libkern')
| -rw-r--r-- | sys/libkern/random.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/libkern/random.c b/sys/libkern/random.c index 35ddea1add68..1145a844f03f 100644 --- a/sys/libkern/random.c +++ b/sys/libkern/random.c @@ -61,11 +61,13 @@ random() * Park and Miller, Communications of the ACM, vol. 31, no. 10, * October 1988, p. 1195. */ - x = randseed; + /* Can't be initialized with 0, so use another value. */ + if ((x = randseed) == 0) + x = 123459876; hi = x / 127773; lo = x % 127773; t = 16807 * lo - 2836 * hi; - if (t <= 0) + if (t < 0) t += 0x7fffffff; randseed = t; return (t); |
