1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

iseq.c: check srouce type

* iseq.c (rb_iseq_compile_with_option): check srouce type, must be
  an IO or a String.  [ruby-core:69219] [Bug #11159]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-05-19 09:54:44 +00:00
parent cdea1553b3
commit b813198627
3 changed files with 13 additions and 0 deletions

View file

@ -1,3 +1,8 @@
Tue May 19 18:54:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* iseq.c (rb_iseq_compile_with_option): check srouce type, must be
an IO or a String. [ruby-core:69219] [Bug #11159]
Tue May 19 17:15:03 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* lib/benchmark.rb: Update Benchmark documentation and formatting.

1
iseq.c
View file

@ -582,6 +582,7 @@ rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE li
if (RB_TYPE_P((src), T_FILE))
node = rb_parser_compile_file_path(parser, file, src, ln);
else {
StringValue(src);
node = rb_parser_compile_string_path(parser, file, src, ln);
if (!node) {

View file

@ -134,4 +134,11 @@ class TestISeq < Test::Unit::TestCase
assert(!op.to_s.match(/^opt_/), "#{op}")
}
end
def test_invalid_source
bug11159 = '[ruby-core:69219] [Bug #11159]'
assert_raise(TypeError, bug11159) {ISeq.compile(nil)}
assert_raise(TypeError, bug11159) {ISeq.compile(:foo)}
assert_raise(TypeError, bug11159) {ISeq.compile(1)}
end
end