[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24424] Re: open dumps core

From: nobu@...
Date: 2004-10-04 04:27:14 UTC
List: ruby-dev #24424
なかだです。

At Mon, 4 Oct 2004 12:40:45 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:24421]:
> |あとはARGFかなぁ。
> 
> これはARGFには問題が残ってるって意味ですよね。

rb_fopen()を使ってるところは危険性があるはずです。


Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.293
diff -U2 -p -d -r1.293 io.c
--- io.c	1 Oct 2004 15:56:04 -0000	1.293
+++ io.c	4 Oct 2004 04:23:12 -0000
@@ -4165,5 +4165,5 @@ next_argv()
 	if (RARRAY(rb_argv)->len > 0) {
 	    filename = rb_ary_shift(rb_argv);
-	    fn = StringValuePtr(filename);
+	    fn = rb_str_new4(StringValue(filename));
 	    if (strlen(fn) == 1 && fn[0] == '-') {
 		current_file = rb_stdin;
@@ -4178,5 +4178,4 @@ next_argv()
 		if (ruby_inplace_mode) {
 		    struct stat st, st2;
-		    VALUE str;
 		    FILE *fw;
 
@@ -4186,5 +4185,5 @@ next_argv()
 		    fstat(fileno(fr), &st);
 		    if (*ruby_inplace_mode) {
-			str = rb_str_new2(fn);
+			VALUE str = rb_str_new2(fn);
 #ifdef NO_LONG_FNAME
                         ruby_add_suffix(str, ruby_inplace_mode);
@@ -4192,4 +4191,5 @@ next_argv()
 			rb_str_cat2(str, ruby_inplace_mode);
 #endif
+			OBJ_FREEZE(str);
 #ifdef NO_SAFE_RENAME
 			(void)fclose(fr);


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread