diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-04 15:22:53 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-04 15:22:53 +0000 |
commit | daf194745bc8a9b3b5a1b802beaf0a5f0c81ac1e (patch) | |
tree | ca75de999cb8e77f66a808033a2cea7e7967a5e4 | |
parent | 103a0b9869c04d9522a4233f1f43a97cc91c5ae3 (diff) | |
download | bundler-daf194745bc8a9b3b5a1b802beaf0a5f0c81ac1e.tar.gz |
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/trunk@64915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | iseq.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -1075,9 +1075,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("<compiled>"); + 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)); } |