[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:15009] 他の binding のローカル変数が変更可能

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2001-10-27 13:08:20 UTC
List: ruby-dev #15009
セーフレベルをあげていてもBindingオブジェクトが読み出せれば
ローカル変数が変更できてしまいます。

def sandbox
  $sandbox = binding
end
sandbox
def safe(level)
  result = nil
  Thread.start {
  $SAFE = level
  result = yield
  }.join
  result
end
safe(4) {
  eval("safe_level = $SAFE", $sandbox)
}
p eval("safe_level", $sandbox)

safe(4) {
  eval("safe_level = $SAFE", TOPLEVEL_BINDING)
}
p eval("safe_level", TOPLEVEL_BINDING)


修正案としてはセーフレベル4のときはbindingを指定できなくする
というのを思いつきました。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread

Prev Next