summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-11-25 18:44:07 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-11-25 18:44:07 +0000
commit5d4aad2b1b7e5a941bf0ed87d280333301183a25 (patch)
treecf5a9e39745ddc1ec2d75ab374232f9db6e996a7 /test
parentddfcb969300604b1f03887e2498779c7c879ca96 (diff)
vm_eval.c: preserve encoding
* vm_eval.c (rb_method_call_status): preserve encoding of called method name in error messages. * vm_insnhelper.c (vm_call_method): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_method.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb
index 9fc2ab10eb..c8b5ff12d3 100644
--- a/test/ruby/test_method.rb
+++ b/test/ruby/test_method.rb
@@ -864,4 +864,17 @@ class TestMethod < Test::Unit::TestCase
n = 10_000_000
assert_equal n , rest_parameter(*(1..n)).size, '[Feature #10440]'
end
+
+ def test_insecure_method
+ m = "\u{5371 967a}"
+ c = Class.new do
+ proc {$SAFE=3;def foo;end}.call
+ alias_method m, "foo"
+ eval "def bar; #{m}; end"
+ end
+ obj = c.new
+ assert_raise_with_message(SecurityError, /#{m}/) do
+ obj.bar
+ end
+ end
end