From: "K.Kosako" Date: 2001-05-29T17:40:06+09:00 Subject: [ruby-dev:13401] ruby.c (proc_options): unexpected SecurityError happens when -T4 起動引数に"-T4"を指定すると、 配列オブジェクトrb_argv, rb_load_pathが変更できないため、 エラーが起こります。 [kosako@neo 1.6.4]$ ls -l empty.rb -rw-rw-r-- 1 kosako kosako 0 May 29 17:19 empty.rb [kosako@neo 1.6.4]$ ./ruby empty.rb [kosako@neo 1.6.4]$ ./ruby -T1 empty.rb [kosako@neo 1.6.4]$ ./ruby -T2 empty.rb [kosako@neo 1.6.4]$ ./ruby -T3 empty.rb [kosako@neo 1.6.4]$ ./ruby -T4 empty.rb empty.rb: Insecure: can't modify array (SecurityError) --- ruby.c.orig Tue May 29 01:07:01 2001 +++ ruby.c Tue May 29 17:24:23 2001 @@ -678,6 +678,11 @@ ruby_show_copyright(); } + if (rb_safe_level() >= 4) { + OBJ_TAINT(rb_argv); + OBJ_TAINT(rb_load_path); + } + if (!e_script && argc == 0) { /* no more args */ if (verbose) exit(0); script = "-"; @@ -723,6 +728,11 @@ process_sflag(); xflag = 0; + + if (rb_safe_level() >= 4) { + FL_UNSET(rb_argv, FL_TAINT); + FL_UNSET(rb_load_path, FL_TAINT); + } } extern int ruby__end__seen; ---- 小迫@ソフネック 渋谷区恵比寿1-15-1