I'm not sure if this is the cleanest fix for the issue, but it seems to work for me. In random.c the taviso() routine uses "rand() % rand()" which can cause a floating point exception if rand() returns 0. Add some tests to make sure that doesn't happen. Signed-off-by: Vince Weaver <vincent.weaver@xxxxxxxxx> diff --git a/random.c b/random.c index 7def9ff..a71fcea 100644 --- a/random.c +++ b/random.c @@ -42,6 +42,7 @@ static unsigned long randbits(int limit) static unsigned long taviso(void) { unsigned long r = 0; + unsigned long temp; switch (rand() % 4) { case 0: r = rand() & rand(); @@ -51,10 +52,14 @@ static unsigned long taviso(void) #endif break; - case 1: r = rand() % rand(); + case 1: temp = rand(); + r = rand(); + if (!temp) r %= temp; #if __WORDSIZE == 64 r <<= 32; - r |= rand() % rand(); + + temp = rand(); + if (!temp) r |= rand() % temp; #endif break; -- To unsubscribe from this list: send the line "unsubscribe trinity" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html