Skip to content

Commit

Permalink
* bootstraptest/test_autoload.rb, bootstraptest/test_method.rb:
Browse files Browse the repository at this point in the history
  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
  • Loading branch information
shugo committed Jun 13, 2013
1 parent 23ab11f commit c8151d1
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 87 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
@@ -1,3 +1,11 @@
Thu Jun 13 10:47:16 2013 Shugo Maeda <shugo@ruby-lang.org>

* 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 <akr@fsij.org>

* bignum.c (integer_unpack_num_bdigits_small): Fix a compile error on
Expand Down
40 changes: 0 additions & 40 deletions bootstraptest/test_autoload.rb
Expand Up @@ -43,46 +43,6 @@
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"
Expand Down
44 changes: 0 additions & 44 deletions bootstraptest/test_method.rb
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions lib/pp.rb
Expand Up @@ -132,17 +132,17 @@ module PPMethods
# 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
Expand Down

0 comments on commit c8151d1

Please sign in to comment.