--- a/sys/libkern/arc4random.c +++ b/sys/libkern/arc4random.c @@ -126,10 +126,10 @@ time_uptime > d->arc4_nextreseed) arc4_randomstir(d); - ret = arc4_randbyte(d); - ret |= arc4_randbyte(d) << 8; - ret |= arc4_randbyte(d) << 16; - ret |= arc4_randbyte(d) << 24; + ret = (uint64_t)arc4_randbyte(d); + ret |= (uint64_t)arc4_randbyte(d) << 8; + ret |= (uint64_t)arc4_randbyte(d) << 16; + ret |= (uint64_t)arc4_randbyte(d) << 24; ret |= (uint64_t)arc4_randbyte(d) << 32; ret |= (uint64_t)arc4_randbyte(d) << 40; ret |= (uint64_t)arc4_randbyte(d) << 48;