[#3747] constants (or class vriable?) — Wakou Aoyama <wakou@...>

青山です。

20 messages 1998/12/06
[#3751] Re: constants (or class vriable?) — Shin-ichro Hara <sinara@...> 1998/12/07

原です。

[#3763] Re: constants (or class vriable?) — Wakou Aoyama <wakou@...> 1998/12/07

青山です。

[#3764] Re: constants (or class vriable?) — matz@... (Yukihiro Matsumoto) 1998/12/08

まつもと ゆきひろです

[#3767] Re: constants (or class vriable?) — kjana@... (YANAGAWA Kazuhisa) 1998/12/08

In message <199812080034.JAA05946@picachu.netlab.co.jp>

[#3826] ruby 1.1d0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 1998/12/16

[#3873] (?: ) does not work? — shugo@... (MAEDA Shugo)

前田です。

15 messages 1998/12/19

[#3881] I want to catch all jump — shugo@... (Shugo Maeda)

前田です。

17 messages 1998/12/21
[#3895] Re: I want to catch all jump — matz@... (Yukihiro Matsumoto) 1998/12/22

まつもと ゆきひろです

[#3894] ruby 1.1d1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/12/22

[#3899] interpreter reinitialization — shugo@... (Shugo Maeda)

前田です。

22 messages 1998/12/22
[#3923] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/23

まつもと ゆきひろです

[#3926] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/23

前田です。

[#3931] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#3956] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/24

前田です。

[#3960] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#4002] config.guess — Koji Arai <JCA02266@...>

新井です。

24 messages 1998/12/26
[#4039] Re: config.guess — matz@... (Yukihiro Matsumoto) 1998/12/29

まつもと ゆきひろです

[#4045] Re: config.guess — Koji Arai <JCA02266@...> 1998/12/31

新井です。

[#4047] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/01

まつもと ゆきひろです

[#4048] Re: config.guess — Koji Arai <JCA02266@...> 1999/01/01

新井です。

[#4049] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/02

まつもと ゆきひろです

[#4050] Re: config.guess — Motoyuki Kasahara <m-kasahr@...> 1999/01/04

笠原です。

[#4030] module Precision — gotoken@... (GOTO Kentaro)

ごとけんです

78 messages 1998/12/28
[#4310] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4311] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/21

まつもと ゆきひろです

[#4312] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4317] Re: module Precision — keiju@... (石塚圭樹 ) 1999/01/21

けいじゅ@日本ラショナルソフトウェアです.

[#4364] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/25

ごとけんです

[#4478] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/28

まつもと ゆきひろです

[#4506] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/30

ごとけんです

[#4552] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/01

まつもと ゆきひろです

[#4557] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/01

ごとけんです

[#4632] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4647] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/03

けいじゅ@日本ラショナルソフトウェアです.

[#4648] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4633] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/03

まつもと ゆきひろです

[#4636] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4836] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4843] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/08

けいじゅ@日本ラショナルソフトウェアです.

[#4849] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4924] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/09

けいじゅ@日本ラショナルソフトウェアです.

[#4976] a genericity — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#5008] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/11

けいじゅ@日本ラショナルソフトウェアです.

[#5018] Re: a genericity — gotoken@... (GOTO Kentaro) 1999/02/11

ごとけんです

[#5171] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/16

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:3968] load (Re: interpreter reinitialization)

From: shugo@... (Shugo Maeda)
Date: 1998-12-24 20:54:35 UTC
List: ruby-dev #3968
前田です。
# なんとか今年中に卒論が完成しそうです。

In message "[ruby-dev:3960] Re: interpreter reinitialization"
Yukihiro Matsumoto <matz@netlab.co.jp> wrote:

> |# safe_levelを4にすると、mod_ruby自体rb_load()を呼べなくなって
> |# しまいますね:-(
> 
> あれ? loadやrb_loadはsafe_levelに関わらず呼べるんでないです
> か? 第2引数をtrueに指定すれば.

では、これはバグですね。


この変更をした後でも、

ruby -e 'FILE="test.rb"; $SAFE=3; p FILE.tainted?; load(FILE, true)'
false
/tmp/rba07840:1:in `load': Insecure operation - load (SecurityError)
        from /tmp/rba07840:1

となってしまいますが、これはなぜでしょう。
エラーメッセージから推測するとCheck_SafeStrでひっかかってるみたいなので
すが、tainted?ではfalseが返ってるみたいですし。うーむ。

あともう一つバグを見つけたのですが、それは別メールにします。

> それと,$SAFEに関しては多分
> loadの前にスレッドを起こして
> 
>   Thread.start do
>     load file, true
>   end
> 
> という組合せで使うべきものなんじゃないかと思ってます(そのつ
> もりで設計しました).

$SAFEってスレッドローカルなんですね...。
# 知らなかったので、rubyレベルで$SAFEを変更できないようにしてました:-(
# 下手な考え休むに似たり。

> |blue[ruby]$ ruby -e 'load("foo.rb", true)'
> |/home/shugo/ruby/foo.rb:4: undefined local variable or method `foo' for #<Object:0x401c5f4c> (NameError)
> |        from /tmp/rba00835:1:in `load'
> |        from /tmp/rba00835:1
> |
> |というのはちょっとまずいと思います。
> 
> ちょっとじゃなくまずいですね.修正します.

あと、

def foo
  puts "foo"
end

class Bar
  def bar
    foo
  end
end

b = Bar.new
b.bar

というのもまずいですね。

モジュール内でクラス定義された場合、そのクラスで自動的にモジュールを
インクルードしてくれると解決すると思うのですが、いかがでしょう。


これはloadを使う時以外でも有用だと思います。

-- 
前田 修吾 (mailto:shugo@aianet.ne.jp)

Attachments (2)

eval.c.diff (253 Bytes, text/x-diff)
--- eval.c~	Thu Dec 24 18:28:47 1998
+++ eval.c	Fri Dec 25 05:04:55 1998
@@ -4352,7 +4352,6 @@
     VALUE self = rb_top_self;
     TMP_PROTECT;
 
-    rb_secure(4);
     Check_SafeStr(fname);
 #ifndef __MACOS__
     if (RSTRING(fname)->ptr[0] == '~') {
eval.c.diff2 (392 Bytes, application/octet-stream)

In This Thread