[#36647] test/pathname/test_pathname.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
[#36649] Embedding struct RArray — "Yugui (Yuki Sonoda)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
[#36672] [Bug #616] instance_eval and Module#to_s — Shyouhei Urabe <redmine@...>
Bug #616: instance_eval and Module#to_s
[#36678] test_process.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
まつもと ゆきひろです
高野です。
[#36685] [Bug #621] When to call Class#inherited — Shyouhei Urabe <redmine@...>
Bug #621: When to call Class#inherited
[#36691] [Bug:1.9] ArgumentError on "%c" % 0x80 — Tanaka Akira <akr@...>
"%c" % 0x80 が例外になります。
[#36697] [Bug:1.9] rb_io_fread does not work — "Yusuke ENDOH" <mame@...>
遠藤です。
[#36704] Assertion failed in array.c on mswin32 Ruby (trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#36705] ruby1.9 on hppa build problem — Hideki Yamane <henrich@...>
こんにちは、
[#36706] Ruby on Vista — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36716] [Bug #644] compile error on win32ole with VC++6 — Usaku NAKAMURA <redmine@...>
Bug #644: compile error on win32ole with VC++6
[#36739] r19786 (trunk): * lib/delegate.rb (Delegator): simplified and restored 1.8 — Fujioka <fuj@...>
藤岡です。
[#36750] [Bug #650] Marshal.load raises RegexpError — Shyouhei Urabe <redmine@...>
Bug #650: Marshal.load raises RegexpError
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
もとの正規表現にバグがあるのは認めますが、それに巻き込まれてでかいPStore
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
けいじゅ@いしつかです.
卜部です。
けいじゅ@いしつかです.
卜部です。
[#36753] [Bug #651] Regexp.new returns strange regexp object — Shyouhei Urabe <redmine@...>
Bug #651: Regexp.new returns strange regexp object
まつもと ゆきひろです
[#36764] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...>
まつもとさん、こんばんは。
まつもと ゆきひろです
まつもとさん、こんにちは。
In article <6.0.0.20.2.20081019182600.08d852a8@localhost>,
ファイル名は以前の議論の結果「変換可能でしたら変換、そうでなかったら
In article <6.0.0.20.2.20081021093404.0ada7bf8@localhost>,
At 10:47 08/10/21, Tanaka Akira wrote:
[#36768] Re: [ruby-cvs:27042] Ruby:r19824 (trunk): * array.c: recycle shared-array when it isn't referenced. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ワナベです。
[#36774] ConverterNotFoundError while making Ruby in Windows(trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
In article <20081020173718.7FAD.C613B076@garbagecollect.jp>,
[#36789] [Bug #660] 数字を3桁ずつコンマで区切るsprintf書式指定 — "rubikitch ." <redmine@...>
Bug #660: 数字を3桁ずつコンマで区切るsprintf書式指定
[#36801] Marshal.load can't take GZipReader — arton <artonx@...>
artonです。
まつもと ゆきひろです
[#36813] Re: Ruby:r19863 (trunk): * regparse.c (parse_char_class): CCV_SB is only for single — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36866] [Bug #676] 引数の有無によるIO#readの挙動の違い — _ wanabe <redmine@...>
Bug #676: 引数の有無によるIO#readの挙動の違い
[#36877] [Feature #679] Integer#to_s(:step=>3, :sep=>",") が欲しい — Martin Dürst <redmine@...>
チケット #679 が更新されました。 (by Martin Dürst)
[#36909] trunk SEGV nkf? — "WATANABE Tetsuya" <tetsuya.watanabe@...>
渡辺哲也です。
[#36914] prefix math_* funcs — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
> complex.cで使うために、いくつか数学関数からstaticがとれたようですが、
[#36915] prefix signal_buff — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
[#36917] VMまわりのシンボルにも「rb_」を付けてほしい — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。連投ですみません。
[#36932] [Bug #6] sprintf() of %f on Windows(MSVCRT) — _ wanabe <redmine@...>
チケット #6 が更新されました。 (by _ wanabe)
[#36937] initial value of $. — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#36993] [Bug:1.9] removing Exception#initialize dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
[#37007] [Bug:1.9] 1+1+1+...+1 dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
はじめまして、よしおかと申します。
遠藤です。
こんにちは、なかむら(う)です。
[ruby-dev:36997] [Bug:1.9] $: includes "." when taint mode
なかだです。
-Tを指定しても$:に"."が含まれています。
$ RUBYOPT=-T ruby18 -e 'p $:.include?(".")'
false
$ RUBYOPT=-T ruby19 -e 'p $:.include?(".")'
true
Index: ruby.c
===================================================================
--- ruby.c (revision 20057)
+++ ruby.c (working copy)
@@ -77,4 +77,5 @@ struct cmdline_options {
int verbose;
int yydebug;
+ int safe_level;
unsigned int setids;
unsigned int dump;
@@ -338,7 +339,15 @@ DllMain(HINSTANCE dll, DWORD reason, LPV
#endif
+void ruby_init_loadpath_safe(int safe_level);
+
void
ruby_init_loadpath(void)
{
+ ruby_init_loadpath_safe(0);
+}
+
+void
+ruby_init_loadpath_safe(int safe_level)
+{
VALUE load_path;
#if defined LOAD_RELATIVE
@@ -385,5 +394,5 @@ ruby_init_loadpath(void)
load_path = GET_VM()->load_path;
- if (rb_safe_level() == 0) {
+ if (safe_level == 0) {
ruby_incpush(getenv("RUBYLIB"));
}
@@ -413,5 +422,5 @@ ruby_init_loadpath(void)
incpush(RUBY_RELATIVE(RUBY_ARCHLIB));
- if (rb_safe_level() == 0) {
+ if (safe_level == 0) {
incpush(".");
}
@@ -875,5 +884,5 @@ proc_options(int argc, char **argv, stru
s += numlen;
}
- rb_set_safe_level(v);
+ if (v > opt->safe_level) opt->safe_level = v;
}
goto reswitch;
@@ -1065,5 +1074,4 @@ process_options(VALUE arg)
char fbuf[MAXPATHLEN];
int i = proc_options(argc, argv, opt, 0);
- int safe;
argc -= i;
@@ -1071,5 +1079,5 @@ process_options(VALUE arg)
if (!(opt->disable & DISABLE_BIT(rubyopt)) &&
- rb_safe_level() == 0 && (s = getenv("RUBYOPT"))) {
+ opt->safe_level == 0 && (s = getenv("RUBYOPT"))) {
VALUE src_enc_name = opt->src.enc.name;
VALUE ext_enc_name = opt->ext.enc.name;
@@ -1094,5 +1102,5 @@ process_options(VALUE arg)
}
- if (rb_safe_level() >= 4) {
+ if (opt->safe_level >= 4) {
OBJ_TAINT(rb_argv);
OBJ_TAINT(GET_VM()->load_path);
@@ -1134,8 +1142,6 @@ process_options(VALUE arg)
opt->script_name = rb_progname;
opt->script = RSTRING_PTR(opt->script_name);
- safe = rb_safe_level();
- rb_set_safe_level_force(0);
- ruby_init_loadpath();
+ ruby_init_loadpath_safe(opt->safe_level);
ruby_init_gems(!(opt->disable & DISABLE_BIT(gems)));
lenc = rb_locale_encoding();
@@ -1169,5 +1175,4 @@ process_options(VALUE arg)
process_sflag(opt);
- rb_set_safe_level_force(safe);
if (opt->e_script) {
rb_encoding *eenc;
@@ -1203,5 +1208,5 @@ process_options(VALUE arg)
opt->xflag = 0;
- if (rb_safe_level() >= 4) {
+ if (opt->safe_level >= 4) {
FL_UNSET(rb_argv, FL_TAINT);
FL_UNSET(GET_VM()->load_path, FL_TAINT);
@@ -1229,4 +1234,6 @@ process_options(VALUE arg)
}
+ rb_set_safe_level(opt->safe_level);
+
return iseq;
}
@@ -1532,5 +1539,5 @@ init_ids(struct cmdline_options *opt)
if (egid != gid) opt->setids |= 2;
if (uid && opt->setids) {
- rb_set_safe_level(1);
+ if (opt->safe_level < 1) opt->safe_level = 1;
}
}
@@ -1544,5 +1551,5 @@ forbid_setid(const char *s, struct cmdli
if (opt->setids & 2)
rb_raise(rb_eSecurityError, "no %s allowed while running setgid", s);
- if (rb_safe_level() > 0)
+ if (opt->safe_level > 0)
rb_raise(rb_eSecurityError, "no %s allowed in tainted mode", s);
}
Index: test/ruby/test_rubyoptions.rb
===================================================================
--- test/ruby/test_rubyoptions.rb (revision 20057)
+++ test/ruby/test_rubyoptions.rb (working copy)
@@ -200,4 +200,6 @@ class TestRubyOptions < Test::Unit::Test
assert_in_out_err([], "", [], [])
+ assert_in_out_err(['-e', 'p $:.include?(".")'], "", ["true"], [])
+
ENV['RUBYOPT'] = '-e "p 1"'
assert_in_out_err([], "", [], /invalid switch in RUBYOPT: -e \(RuntimeError\)/)
@@ -206,4 +208,6 @@ class TestRubyOptions < Test::Unit::Test
assert_in_out_err([], "", [], /no program input from stdin allowed in tainted mode \(SecurityError\)/)
+ assert_in_out_err(['-e', 'p $:.include?(".")'], "", ["false"], [])
+
ENV['RUBYOPT'] = '-T4'
assert_in_out_err([], "", [], /no program input from stdin allowed in tainted mode \(SecurityError\)/)
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦