From 2847325f99ccc35a2c94785fb12be3726be6983f Mon Sep 17 00:00:00 2001 From: seki Date: Sun, 13 Feb 2005 13:53:25 +0000 Subject: add safe_level, default_safe_level git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/drb/test_drb.rb | 15 ++++++++++++++- test/drb/ut_eval.rb | 10 +++++++++- test/drb/ut_safe1.rb | 5 ++--- 3 files changed, 25 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index 6764e913ca..ae8ba4252a 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -217,7 +217,7 @@ class TestDRbEval < Test::Unit::TestCase @ext.stop_service end - def test_01_safe1_eval + def test_01_safe1_safe4_eval assert_raises(SecurityError) do @there.method_missing(:instance_eval, 'ENV.inspect') end @@ -235,6 +235,19 @@ class TestDRbEval < Test::Unit::TestCase assert_raises(SecurityError) do remote_class.module_eval('ENV.inspect') end + + four = @there.four + assert_equal(1, four.method_missing(:send, :eval, '1')) + + remote_class = four.remote_class + + assert_raises(SecurityError) do + remote_class.class_eval('ENV.inspect') + end + + assert_raises(SecurityError) do + remote_class.module_eval('ENV.inspect') + end end end diff --git a/test/drb/ut_eval.rb b/test/drb/ut_eval.rb index 6a81e17d05..4df963e7cd 100644 --- a/test/drb/ut_eval.rb +++ b/test/drb/ut_eval.rb @@ -2,6 +2,14 @@ require 'drb/drb' require 'drb/extserv' class EvalAttack + def initialize + @four = DRb::DRbServer.new('druby://localhost:0', self, {:safe_level => 4}) + end + + def four + DRbObject.new_with_uri(@four.uri) + end + def remote_class DRbObject.new(self.class) end @@ -17,7 +25,7 @@ if __FILE__ == $0 $SAFE = 1 - DRb.start_service('druby://localhost:0', EvalAttack.new) + DRb.start_service('druby://localhost:0', EvalAttack.new, {:safe_level => 2}) es = DRb::ExtServ.new(ARGV.shift, ARGV.shift) DRb.thread.join end diff --git a/test/drb/ut_safe1.rb b/test/drb/ut_safe1.rb index 761bdff4b1..4df8e1e5a1 100644 --- a/test/drb/ut_safe1.rb +++ b/test/drb/ut_safe1.rb @@ -8,9 +8,8 @@ if __FILE__ == $0 it end - $SAFE = 1 - - DRb.start_service('druby://localhost:0', [1, 2, 'III', 4, "five", 6]) + DRb.start_service('druby://localhost:0', [1, 2, 'III', 4, "five", 6], + {:safe_level => 1}) es = DRb::ExtServ.new(ARGV.shift, ARGV.shift) DRb.thread.join end -- cgit v1.2.3