[#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:20005] Re: I quote: "Maybe IRB bug!!"

From: matz@... (Yukihiro Matsumoto)
Date: 2003-04-10 16:56:14 UTC
List: ruby-dev #20005
まつもと ゆきひろです

In message "[ruby-dev:20003] Re: I quote: "Maybe IRB bug!!""
    on 03/04/10, 石塚圭樹 <keiju@ishitsuka.com> writes:

|>私のところだと、$SAFE=1ならいろいろできるんですが、$SAFE=4に
|>するとしたとたんSecurityErrorで落ちます。
|
|色々できるって? $SAFE=1した後も, irb上でメソッドが実行できるってこと? 

いろいろできたのは1.6のirbでした。1.8のだとなにをやっても例
外になりますね。

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

「静的に中」ってのがよくわかんないんですが、Proc実行中に
$SAFEをいじっても外側の$SAFEに影響を及ぼさないが、コンテキス
トとしてProcを渡しても$SAFEを保護できないって動作をしますね。

なんでこんな風にしたんだっけ。あんまりそうしようと思った記憶
がないんだけど。taintされたProcの実行中には$SAFE=4にしようと
思ったことは覚えているのだが。

| proc{$SAFE=1; eval "puts $SAFE"}.call
|
|とか
|
| proc{$SAFE=1; eval "gets"}.call
|
|がエラーにならないのは正常の動作?

$SAFE=1だとこれらは禁止の対象じゃないですよ。文字列汚染され
てないし。

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

evalがエラーになるのは汚染されている場合だけです。

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

Maybe IRB bug!! ってメッセージはまずいかも。って、もしかして
最初から石塚さんそういってたっけ。

                                まつもと ゆきひろ /:|)

In This Thread