From f114e3e25236cd43d2f71419e4929caaa755020e Mon Sep 17 00:00:00 2001 From: Akira Kuroda Date: Wed, 25 Jul 2012 00:05:51 +0900 Subject: fix segmentation fault in Array#last --- src/array.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/array.c') diff --git a/src/array.c b/src/array.c index ed1c3f475..0f52c38ef 100644 --- a/src/array.c +++ b/src/array.c @@ -789,6 +789,9 @@ mrb_ary_last(mrb_state *mrb, mrb_value self) /* len == 1 */ size = mrb_fixnum(*vals); + if (size < 0) { + mrb_raise(mrb, E_ARGUMENT_ERROR, "negative array size"); + } if (size > a->len) size = a->len; if ((a->flags & MRB_ARY_SHARED) || size > ARY_DEFAULT_LEN) { return ary_subseq(mrb, a, a->len - size, size); -- cgit v1.2.3