From: Kazuhiko <kazuhiko@...> Date: 2011-09-28T21:15:58+09:00 Subject: [ruby-dev:44560] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある かずひこです。 On 26/09/2011 19:19, Shugo Maeda wrote: >>> Yuguiさんが1.9.3ブランチにバックポートしてくださって、先ほどめでたく >>> 1.9.3RC1が出た今ころになって気づいて、ものすごく申し訳ないのです >>> が、$SAFE=3の時は動くけれど、$SAFE=4だと相変わらず失敗するようです。 > (snip) >> r33328 で直ったようですが、1.9.3に入れますか?みなさんの意見が聞きたいです。 >> 正直ぼくのなかでは重要度は微妙なんですけど、このままだた1.9.[234] でそれぞれ >> 仕様が違うという事態になるので、それもいかがなものかと思い悩んでいます。 > > アプリケーション側のworkaroundとしては、$SAFE >= 4のサンドボックス内で > 使用を許可したい変換表を$SAFE == 0のときにあらかじめロードしておくとい > う手があるので、tDiaryのケースでそれが現実的な解となるかどうかが、一つの > 判断材料ですね。 Yuguiさんの言うように、重要度は微妙というのには同意します。すくなくとも tDiary的には、上記のワークアラウンドですでに回避できているので、まあ困ら ないといえば困りません。 > $SAFEが4以上の時はグローバルな状態の変更が禁止されるという原則があった > と思うんですが、このケースはそれに抵触しないのかなというのがちょっと気に > なります。影響は限定的なので実害はない気がするのですが。 この修正の結果「グローバルな状態が変更される」のは、あくまでも(現状の) 実装の都合による副作用であって、それが理由でこの修正をrevertすることは無 いんじゃないかなと思います。 それはそれとして、1.9.3に対しては、タイミングが遅すぎたと思うので、「も はや仕様は完全に凍結するという原則論を優先します」というYuguiさんの判断 に異論はありません。 > 1.9.[234]で仕様が違うという点については、どうせ$SAFEは2.0で削除すべきだ > と思うので、あんまり気にしなくてもいいんじゃないでしょうか。 レンタルtDiaryの運営者としては、このissueそのものよりも↑こっちの方が気に なります。:) かずひこ