From: "NARUSE, Yui" Date: 2011-09-06T11:52:19+09:00 Subject: [ruby-dev:44472] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある 2011年9月6日11:02 Shota Fukumori : > 懸念しているのはrequireのpathにスクリプトサイドから自分でパスを流す事ができるかできないかで, > 自分の認識ではできないと思っているのですが,もし可能だとするとrb_require_safeの第二引数に0を > 渡すのは危険なのでこの修正方法じゃダメだと思っています. 見れば分かる通りこの path は transcoder_entry_t から取り出されているわけですが、 この entry がどこで作られているかというと、rb_declare_transcoder で通常作られます。 で、こいつはどこから呼ばれるかというと、transdb.h からビルド時に決定される 固定文字列で呼ばれます。 なので、安全だと考えています。 (もちろん C API たたいて横から割り込んだ時はこの限りではない) -- NARUSE, Yui