Project

General

Profile

Bug #5036 » fix-error-messages.patch

ktsj (Kazuki Tsujimoto), 07/17/2011 11:01 AM

View differences:

struct.c
{
rb_check_frozen(s);
if (!OBJ_UNTRUSTED(s) && rb_safe_level() >= 4)
rb_raise(rb_eSecurityError, "Insecure: can't modify Struct");
rb_raise(rb_eSecurityError, "Insecure: can't modify %s", rb_obj_classname(s));
}
static VALUE
time.c
{
rb_check_frozen(time);
if (!OBJ_UNTRUSTED(time) && rb_safe_level() >= 4)
rb_raise(rb_eSecurityError, "Insecure: can't modify Time");
rb_raise(rb_eSecurityError, "Insecure: can't modify %s", rb_obj_classname(time));
}
static wideval_t
test/ruby/test_struct.rb
require 'test/unit'
require 'timeout'
require_relative 'envutil'
class TestStruct < Test::Unit::TestCase
def test_struct
......
assert !x.eql?(z)
}
end
def test_struct_subclass
bugNNNN = '[ruby-dev:NNNN]'
assert_in_out_err([], <<-INPUT, [], /Insecure: can't modify Struct2::S \(SecurityError\)$/, bugNNNN)
Thread.new do
class Struct2 < Struct
end
s = Struct2.new("S", :m).new
$SAFE=4
s.m=1
end.join
INPUT
end
end
test/ruby/test_time.rb
require 'delegate'
require 'timeout'
require 'delegate'
require_relative 'envutil'
class TestTime < Test::Unit::TestCase
def setup
......
assert_raise(NoMethodError, bug5012) { t1.m }
end
def test_time_subclass
bugNNNN = '[ruby-dev:NNNN]'
assert_in_out_err([], <<-INPUT, [], /Insecure: can't modify Time2 \(SecurityError\)$/, bugNNNN)
Thread.new do
class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime
end.join
INPUT
end
end
    (1-1/1)