From a2aa7e7f520b42a2de393039bd8d468dbd299026 Mon Sep 17 00:00:00 2001 From: Akira Kuroda Date: Sun, 29 Jul 2012 00:21:40 +0900 Subject: fix segmentation fault in Array#first --- 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 0f52c38ef..ccd22674e 100644 --- a/src/array.c +++ b/src/array.c @@ -764,6 +764,9 @@ mrb_ary_first(mrb_state *mrb, mrb_value self) if (mrb_get_args(mrb, "|i", &size) == 0) { return (a->len > 0)? a->ptr[0]: mrb_nil_value(); } + 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) { -- cgit v1.2.3