From: sheepman Date: 2005-01-07T21:12:29+09:00 Subject: [ruby-dev:25426] srand(1<<100000000) dumps core こんばんは、sheeman です。 次のようにすると core を吐きます。 $ ./ruby -ve 'srand(1<<100000000)' ruby 1.9.0 (2005-01-07) [i686-linux] zsh: segmentation fault ./ruby -ve 'srand(1<<100000000)' 以下はパッチです。 Index: random.c =================================================================== RCS file: /src/ruby/random.c,v retrieving revision 1.37 diff -u -r1.37 random.c --- random.c 6 Jan 2005 08:23:38 -0000 1.37 +++ random.c 7 Jan 2005 12:06:04 -0000 @@ -216,7 +216,7 @@ rb_obj_classname(vseed)); } len = (len + 3) / 4; /* number of 32bit words */ - buf = ALLOCA_N(long, len); /* allocate longs for init_by_array */ + buf = ALLOC_N(long, len); /* allocate longs for init_by_array */ memset(buf, 0, len * sizeof(long)); if (FIXNUM_P(seed)) { buf[0] = FIX2ULONG(seed) & 0xffffffff; @@ -248,7 +248,7 @@ first = 0; old = saved_seed; saved_seed = seed; - + free(buf); return old; } -- sheepman / TAMURA Takashi sheepman@tcn.zaq.ne.jp http://sheepman.parfait.ne.jp/