From c14ab348a1bce037e8c1f50a0504a11379a90887 Mon Sep 17 00:00:00 2001 From: nagachika Date: Tue, 9 Oct 2018 13:59:53 +0000 Subject: merge revision(s) 64915: [Backport #15205] check argument type. * iseq.c (iseqw_s_compile): check argument type (T_STRING) to avoid SEGV. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- iseq.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'iseq.c') diff --git a/iseq.c b/iseq.c index 10cb6b9b5c..4999b8c9e4 100644 --- a/iseq.c +++ b/iseq.c @@ -861,9 +861,14 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self) case 3: path = argv[--i]; case 2: file = argv[--i]; } + if (NIL_P(file)) file = rb_fstring_cstr(""); + if (NIL_P(path)) path = file; if (NIL_P(line)) line = INT2FIX(1); + Check_Type(path, T_STRING); + Check_Type(file, T_STRING); + return iseqw_new(rb_iseq_compile_with_option(src, file, path, line, 0, opt)); } -- cgit v1.2.3