summaryrefslogtreecommitdiff
path: root/random.c
diff options
context:
space:
mode:
Diffstat (limited to 'random.c')
-rw-r--r--random.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/random.c b/random.c
index de047995d5..149069c76e 100644
--- a/random.c
+++ b/random.c
@@ -376,6 +376,8 @@ rand_init(struct MT *mt, VALUE vseed)
case T_FIXNUM:
len = 1;
fixnum_seed = FIX2LONG(seed);
+ if (fixnum_seed < 0)
+ fixnum_seed = -fixnum_seed;
buf[0] = (unsigned int)(fixnum_seed & 0xffffffff);
#if SIZEOF_LONG > SIZEOF_INT32
if ((long)(int)fixnum_seed != fixnum_seed) {