[#20036] Re: Roundoff problem with Float and Marshal — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

16 messages 2003/04/18
[#20045] Re: Roundoff problem with Float and Marshal — nobu.nakada@... 2003/04/20

なかだです。

[#20063] Re: Roundoff problem with Float and Marshal — matz@... (Yukihiro Matsumoto) 2003/04/22

まつもと ゆきひろです

[#20097] jcode.rb — akira yamada / やまだあきら <akira@...>

25 messages 2003/04/26
[#20098] Re: jcode.rb — matz@... (Yukihiro Matsumoto) 2003/04/27

まつもと ゆきひろです

[#20105] Re: jcode.rb — WATANABE Hirofumi <eban@...> 2003/04/28

わたなべです。

[#20108] Re: jcode.rb — matz@... (Yukihiro Matsumoto) 2003/04/28

まつもと ゆきひろです

[ruby-dev:20003] Re: I quote: "Maybe IRB bug!!"

From: keiju@... (石塚圭樹)
Date: 2003-04-10 10:22:04 UTC
List: ruby-dev #20003
けいじゅ@ラショナルソフトウェアです.

In [ruby-dev:19994] the message: "[ruby-dev:19994] Re: I quote: "Maybe
IRB bug!!"", on Apr/10 13:15(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>私のところだと、$SAFE=1ならいろいろできるんですが、$SAFE=4に
>するとしたとたんSecurityErrorで落ちます。

色々できるって? $SAFE=1した後も, irb上でメソッドが実行できるってこと? 

>でも固まったりはしないなあ。

同じく...

>|b = proc{bind}
>|eval "$SAFE = 1", b
>|p $SAFE
>|#=> 1
>意図通りです。これは「Procの中」ではありませんから。一方、

静的に中ってこと?

>  e = proc{|x| eval x}
>  e.call("$SAFE=1")
>  p $SAFE   #=> 0
>
>になります。もっとも、これは毎回リセットされちゃいますね。
>
>  p e.call("$SAFE")  #=> 0
>
>これはリセットされないようにするべきなのかなあ。

リセットされないと, 2度目から実行(eval)できないのでは?

と思ったけど,

 proc{$SAFE=1; eval "puts $SAFE"}.call

とか

 proc{$SAFE=1; eval "gets"}.call

がエラーにならないのは正常の動作?

# rubyのセキュリティモデルは難しい...

>現状では$SAFEの状態を保存しても動くようにしようと思ったら、Threadを別
>に作るしかないみたいですね。

うーん. こっちでは難しそう... 

irbは一行一行evalしたいわけですよね. evalはThread内で実行しなくてはな
らないので, そうすると$SAFE>1でエラーになってしまう...

でも, $SAFE>1でirbを実行したいってニーズはあんまりないと思いますので,
無理して実行できるように対応する気はあまりないですが.

__
..................................石塚 圭樹@ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread