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_4@65111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2018-10-17 08:15:47 +00:00
parent bfdc70f83c
commit 999f6f8206
2 changed files with 6 additions and 1 deletions

5
iseq.c
View file

@ -793,9 +793,14 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self)
case 3: path = argv[--i]; case 3: path = argv[--i];
case 2: file = argv[--i]; case 2: file = argv[--i];
} }
if (NIL_P(file)) file = rb_fstring_cstr("<compiled>"); if (NIL_P(file)) file = rb_fstring_cstr("<compiled>");
if (NIL_P(path)) path = file;
if (NIL_P(line)) line = INT2FIX(1); 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)); return iseqw_new(rb_iseq_compile_with_option(src, file, path, line, 0, opt));
} }

View file

@ -1,6 +1,6 @@
#define RUBY_VERSION "2.4.5" #define RUBY_VERSION "2.4.5"
#define RUBY_RELEASE_DATE "2018-10-17" #define RUBY_RELEASE_DATE "2018-10-17"
#define RUBY_PATCHLEVEL 325 #define RUBY_PATCHLEVEL 326
#define RUBY_RELEASE_YEAR 2018 #define RUBY_RELEASE_YEAR 2018
#define RUBY_RELEASE_MONTH 10 #define RUBY_RELEASE_MONTH 10