diff -r 3c48b2b3cb83 -r 6ef84b000bd6 src/base/random.cc --- a/src/base/random.cc Fri Aug 13 06:16:30 2010 -0700 +++ b/src/base/random.cc Fri Aug 13 11:37:53 2010 -0500 @@ -65,7 +65,9 @@ uint32_t Random::genrand(uint32_t max) { - int log = ceilLog2(max); + if (max == 0) + return 0; + int log = (max == 1) ? 1 : ceilLog2(max); int shift = (sizeof(uint32_t) * 8 - log); uint32_t random; @@ -79,7 +81,9 @@ uint64_t Random::genrand(uint64_t max) { - int log = ceilLog2(max); + if (max == 0) + return 0; + int log = (max == 1) ? 1 : ceilLog2(max); int shift = (sizeof(uint64_t) * 8 - log); uint64_t random;