--- random32.c.orig 2008-06-19 11:21:57.000000000 -0400 +++ random32.c 2008-06-19 11:23:05.000000000 -0400 @@ -58,13 +58,17 @@ static void __set_random32(struct rnd_state *state, unsigned long s) { + s &= 0xFFFFFFFF; if (s == 0) s = 1; /* default seed is 1 */ #define LCG(n) (69069 * n) state->s1 = LCG(s); + if(state->s1 < 2) state->s1 += 2; state->s2 = LCG(state->s1); + if(state->s2 < 8) state->s2 += 8; state->s3 = LCG(state->s2); + if(state->s3 < 16) state->s3 += 16; /* "warm it up" */ __random32(state);