diff --git a/ChangeLog b/ChangeLog index 9429d045ff..9cd7576c3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jul 1 13:19:44 2008 Nobuyoshi Nakada + + * array.c (rb_ary_fill): check if beg is too big. + Tue Jul 1 12:01:16 2008 Koichi Sasada * compile.c, insns.def, vm.c, vm_core.h: remove some insns @@ -12,10 +16,10 @@ Tue Jul 1 12:01:16 2008 Koichi Sasada Tue Jul 1 03:28:16 2008 Eric Hodel * test/rubygems/test_ext_configure_builder.rb: Apply locale-free - patch by Yusuke ENDOH. [ruby-core:17444]. + patch by Yusuke ENDOH. [ruby-core:17444]. * runruby.rb: Set ENV['rake']. Patch by Yusuke ENDOH - [ruby-core:17442]. + [ruby-core:17442]. Tue Jul 1 01:07:17 2008 Nobuyoshi Nakada diff --git a/array.c b/array.c index 7d8d406783..646ea16526 100644 --- a/array.c +++ b/array.c @@ -2145,7 +2145,7 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary) break; } rb_ary_modify(ary); - if (len > ARY_MAX_SIZE - beg) { + if (beg >= ARY_MAX_SIZE || len > ARY_MAX_SIZE - beg) { rb_raise(rb_eArgError, "argument too big"); } end = beg + len;