こんばんは、sheepman です。
$SAFE レベル 3 以上で定義されたメソッドの呼び出しを
$SAFE == 0 の時に禁止する、以下の先日の更新に関して質問です。

* eval.c (rb_call0): prohibit calling tainted method (>2) when
  $SAFE == 0.

$SAFE == 1 の時に呼び出すことができて、$SAFE == 0 の時に出来ないというのは、
こういうものなのでしょうか。メーリングリストでの過去の議論へのポインタがもしあれば
紹介していただけるとうれしいです。

$ ruby-1.8 -ve '
Thread.new{
  $SAFE = 3
  class Hoge
    def foo
      p $SAFE
    end
  end
}
sleep 0.1
$SAFE = 0
Hoge.new.foo
'
ruby 1.8.3 (2005-09-18) [i686-linux]
-e:12:in `foo': calling insecure method: foo (SecurityError)
        from -e:12

$ ruby-1.8 -ve '
Thread.new{
  $SAFE = 3
  class Hoge
    def foo
      p $SAFE
    end
  end
}
sleep 0.1
$SAFE = 1
Hoge.new.foo
'
ruby 1.8.3 (2005-09-18) [i686-linux]
3


-- 
sheepman / TAMURA Takashi
sheepman / sheepman.sakura.ne.jp http://sheepman.parfait.ne.jp/