[Ruby 1.9 - Bug #5036][Open] time modify/struct modifyの例外メッセージがサブクラスの情報を反映しない

Issue #5036 has been reported by Kazuki Tsujimoto.


Bug #5036: time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない

Author: Kazuki Tsujimoto
Status: Open
Priority: Normal
Assignee:
Category: lib
Target version:
ruby -v: ruby 1.9.4dev (2011-07-16 trunk 32562) [x86_64-linux]

=begin
辻本です。

time_modify/struct_modifyにて生成される例外のメッセージに
クラス名がハードコーディングされているため、
これらがサブクラスのオブジェクトから呼ばれた場合でも
そのことが例外メッセージから読み取れません。

Timeの例:

class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime # => Insecure: can’t modify Time (SecurityError)

Structの例:

class Struct2 < Struct
end
s = Struct2.new(“S”, :m).new
$SAFE=4
s.m=1 # => Insecure: can’t modify Struct (SecurityError)

パッチを添付します。
=end

Issue #5036 has been updated by Nobuyoshi N…

Status changed from Open to Assigned
Assignee set to Kazuki Tsujimoto

入れちゃっていいんじゃないでしょうか。
あとはrb_check_frozen()のようにinsecureチェック用の関数を作るとか。

Bug #5036: time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない

Author: Kazuki Tsujimoto
Status: Assigned
Priority: Normal
Assignee: Kazuki Tsujimoto
Category: lib
Target version:
ruby -v: ruby 1.9.4dev (2011-07-16 trunk 32562) [x86_64-linux]

=begin
辻本です。

time_modify/struct_modifyにて生成される例外のメッセージに
クラス名がハードコーディングされているため、
これらがサブクラスのオブジェクトから呼ばれた場合でも
そのことが例外メッセージから読み取れません。

Timeの例:

class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime # => Insecure: can’t modify Time (SecurityError)

Structの例:

class Struct2 < Struct
end
s = Struct2.new(“S”, :m).new
$SAFE=4
s.m=1 # => Insecure: can’t modify Struct (SecurityError)

パッチを添付します。
=end

Issue #5036 has been updated by Kazuki Tsujimoto.

コミット権を持っていないので、お手数ですがコミッタの方取り込みをお願いします。

Bug #5036: time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない

Author: Kazuki Tsujimoto
Status: Assigned
Priority: Normal
Assignee: Kazuki Tsujimoto
Category: lib
Target version:
ruby -v: ruby 1.9.4dev (2011-07-16 trunk 32562) [x86_64-linux]

=begin
辻本です。

time_modify/struct_modifyにて生成される例外のメッセージに
クラス名がハードコーディングされているため、
これらがサブクラスのオブジェクトから呼ばれた場合でも
そのことが例外メッセージから読み取れません。

Timeの例:

class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime # => Insecure: can’t modify Time (SecurityError)

Structの例:

class Struct2 < Struct
end
s = Struct2.new(“S”, :m).new
$SAFE=4
s.m=1 # => Insecure: can’t modify Struct (SecurityError)

パッチを添付します。
=end

Issue #5036 has been updated by Kazuki Tsujimoto.

対応ありがとうございました。

なお、このコミット(r32569)でt.rbが混入してしまっています。


Bug #5036: time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない

Author: Kazuki Tsujimoto
Status: Closed
Priority: Normal
Assignee: Kazuki Tsujimoto
Category: lib
Target version:
ruby -v: ruby 1.9.4dev (2011-07-16 trunk 32562) [x86_64-linux]

=begin
辻本です。

time_modify/struct_modifyにて生成される例外のメッセージに
クラス名がハードコーディングされているため、
これらがサブクラスのオブジェクトから呼ばれた場合でも
そのことが例外メッセージから読み取れません。

Timeの例:

class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime # => Insecure: can’t modify Time (SecurityError)

Structの例:

class Struct2 < Struct
end
s = Struct2.new(“S”, :m).new
$SAFE=4
s.m=1 # => Insecure: can’t modify Struct (SecurityError)

パッチを添付します。
=end

$B%3%%C%H8"$r;}$C$F$$$J$$$N$G!"$*<j?t$G$9$,%3%%C%?$NJ}<h$j9~$_$r$*4j$$$7$^$9!#(B

$B<h$C$F$/$@$5$$!#(B
$B$I$&$;%3!<%I$,$"$C$F$k$@$m$J!<$C$F>l9g$OBeM}%3%_%C%H$9$k$NLLE]$/$5$$$G$9(B

(11/07/17 21:47), KOSAKI Motohiro wrote:

$B%3%%C%H8"$r;}$C$F$$$J$$$N$G!"$*<j?t$G$9$,%3%%C%?$NJ}<h$j9~$_$r$*4j$$$7$^$9!#(B

$B<h$C$F$/$@$5$$!#(B
$B$I$&$;%3!<%I$,$"$C$F$k$@$m$J!<$C$F>l9g$OBeM}%3%_%C%H$9$k$NLLE]$/$5$$$G$9(B

$BA0ED$5$s$K8x3+80$rAw$C$F$/$@$5$$!#(B

Issue #5036 has been updated by Kazuki Tsujimoto.

ありがとうございます。
では、CommitterHowtoのお作法に則って送らせてもらいます。

Bug #5036: time_modify/struct_modifyの例外メッセージがサブクラスの情報を反映しない

Author: Kazuki Tsujimoto
Status: Closed
Priority: Normal
Assignee: Kazuki Tsujimoto
Category: lib
Target version:
ruby -v: -

=begin
辻本です。

time_modify/struct_modifyにて生成される例外のメッセージに
クラス名がハードコーディングされているため、
これらがサブクラスのオブジェクトから呼ばれた場合でも
そのことが例外メッセージから読み取れません。

Timeの例:

class Time2 < Time
end
t = Time2.now
$SAFE=4
t.gmtime # => Insecure: can’t modify Time (SecurityError)

Structの例:

class Struct2 < Struct
end
s = Struct2.new(“S”, :m).new
$SAFE=4
s.m=1 # => Insecure: can’t modify Struct (SecurityError)

パッチを添付します。
=end