From 74dbee8e5275e51d92acb26bf04558d67a3edea4 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 28 Feb 2017 09:21:24 +0900 Subject: Add check before calling str_substr(); ref #3476 --- src/string.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/string.c') diff --git a/src/string.c b/src/string.c index b5d34b8b5..84f33024e 100644 --- a/src/string.c +++ b/src/string.c @@ -1168,8 +1168,11 @@ mrb_str_aref_m(mrb_state *mrb, mrb_value str) argc = mrb_get_args(mrb, "o|o", &a1, &a2); if (argc == 2) { + mrb_int n1, n2; + mrb_regexp_check(mrb, a1); - return str_substr(mrb, str, mrb_fixnum(a1), mrb_fixnum(a2)); + mrb_get_args(mrb, "ii", &n1, &n2); + return str_substr(mrb, str, n1, n2); } if (argc != 1) { mrb_raisef(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%S for 1)", mrb_fixnum_value(argc)); -- cgit v1.2.3