From c8151d123506d34384d8a7cd856ec43b14a3dd5a Mon Sep 17 00:00:00 2001 From: shugo Date: Thu, 13 Jun 2013 02:01:42 +0000 Subject: * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb: remove tests for $SAFE=4. * lib/pp.rb: use taint instead of untrust to avoid warnings when $VERBOSE is set to true. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ bootstraptest/test_autoload.rb | 40 -------------------------------------- bootstraptest/test_method.rb | 44 ------------------------------------------ lib/pp.rb | 6 +++--- 4 files changed, 11 insertions(+), 87 deletions(-) diff --git a/ChangeLog b/ChangeLog index fb3ec45f88..31b2217169 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Thu Jun 13 10:47:16 2013 Shugo Maeda + + * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb: + remove tests for $SAFE=4. + + * lib/pp.rb: use taint instead of untrust to avoid warnings when + $VERBOSE is set to true. + Thu Jun 13 06:12:18 2013 Tanaka Akira * bignum.c (integer_unpack_num_bdigits_small): Fix a compile error on diff --git a/bootstraptest/test_autoload.rb b/bootstraptest/test_autoload.rb index e8df6684b6..a9f8e6dacd 100644 --- a/bootstraptest/test_autoload.rb +++ b/bootstraptest/test_autoload.rb @@ -43,46 +43,6 @@ assert_equal 'ok', %q{ ZZZ.ok } -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"} - autoload :ZZZ, "./zzz.rb" - proc{$SAFE=4; ZZZ.ok}.call -} - -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"} - autoload :ZZZ, "./zzz.rb" - require "./zzz.rb" - proc{$SAFE=4; ZZZ.ok}.call -} - -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"} - autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb') - module M; end - Thread.new{M.instance_eval('$SAFE=4; ZZZ.new.hoge')}.value -} - -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"} - autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb') - module M; end - Thread.new{$SAFE=4; M.instance_eval('ZZZ.new.hoge')}.value -} - -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"} - autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb') - Thread.new{$SAFE=4; eval('ZZZ.new.hoge')}.value -} - -assert_equal 'ok', %q{ - open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"} - autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb') - module M; end - Thread.new{eval('$SAFE=4; ZZZ.new.hoge')}.value -} - assert_equal 'okok', %q{ open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"} autoload :ZZZ, "./zzz.rb" diff --git a/bootstraptest/test_method.rb b/bootstraptest/test_method.rb index ed22608aea..4282bc6273 100644 --- a/bootstraptest/test_method.rb +++ b/bootstraptest/test_method.rb @@ -886,50 +886,6 @@ class C0; def m *args; [:C0_m, args]; end; end class C1 < C0; def m a, o=:o; super; end; end ; C1.new.m 1, 2} -assert_equal %q{[:ok, :ok, :ok, :ok, :ok, :ok, :ng, :ng]}, %q{ - $ans = [] - class Foo - def m - end - end - - c1 = c2 = nil - - lambda{ - $SAFE = 4 - c1 = Class.new{ - def m - end - } - c2 = Class.new(Foo){ - alias mm m - } - }.call - - def test - begin - yield - rescue SecurityError - $ans << :ok - else - $ans << :ng - end - end - - o1 = c1.new - o2 = c2.new - - test{o1.m} - test{o2.mm} - test{o1.send :m} - test{o2.send :mm} - test{o1.public_send :m} - test{o2.public_send :mm} - test{o1.method(:m).call} - test{o2.method(:mm).call} - $ans -} - assert_equal 'ok', %q{ class C def x=(n) diff --git a/lib/pp.rb b/lib/pp.rb index 96e461a928..5bd378714c 100644 --- a/lib/pp.rb +++ b/lib/pp.rb @@ -132,17 +132,17 @@ class PP < PrettyPrint # and preserves the previous set of objects being printed. def guard_inspect_key if Thread.current[:__recursive_key__] == nil - Thread.current[:__recursive_key__] = {}.untrust + Thread.current[:__recursive_key__] = {}.taint end if Thread.current[:__recursive_key__][:inspect] == nil - Thread.current[:__recursive_key__][:inspect] = {}.untrust + Thread.current[:__recursive_key__][:inspect] = {}.taint end save = Thread.current[:__recursive_key__][:inspect] begin - Thread.current[:__recursive_key__][:inspect] = {}.untrust + Thread.current[:__recursive_key__][:inspect] = {}.taint yield ensure Thread.current[:__recursive_key__][:inspect] = save -- cgit v1.2.3