diff --git a/ChangeLog b/ChangeLog index 198de5299b..0600a19094 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +Fri Oct 26 05:48:57 UTC 2007 David Flanagan + * array.c: raise IndexError for negative length in rb_ary_fill + Wed Oct 25 07:12:03 2007 James Edward Gray II * lib/net/telnet.rb (Net::Telnet#login): Allowing "passphrase" in diff --git a/array.c b/array.c index 16ac706941..8573746f46 100644 --- a/array.c +++ b/array.c @@ -2127,6 +2127,7 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary) if (beg < 0) beg = 0; } len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2); + if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len); break; } rb_ary_modify(ary);