[#24395] "a".sum(32) is 0 — Tanaka Akira <akr@...17n.org>
次のように、"a".sum(32) が 0 になるのは変ではないでしょうか。
まつもと ゆきひろです
In article <1096716505.531808.29662.nullmailer@x31.priv.netlab.jp>,
[#24400] IO#read with 1 argument dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24405] Auto stack growing on Mac OS X — Mitsuhiro Kondo <miche@...>
近藤と申します。
[#24413] Re: new NKF2拡張ライブラリ — "NARUSE, Yui" <naruse@...>
naruseです。
[#24444] ARGF.read(len) and EOF — Tanaka Akira <akr@...17n.org>
次のように、ARGF.read(len) から読み込もうとしたときに、引数にファイル
In article <1097228154.590547.23205.nullmailer@x31.priv.netlab.jp>,
[#24464] DelegateClass#clone — pegacorn@...
こんにちは。
From: pegacorn@jcom.home.ne.jp
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
[#24467] DBM#select: `select': wrong argument type false (expected Data) (TypeError) — Tanaka Akira <akr@...17n.org>
DBM#select を呼び出すと `select': wrong argument type false (expected
[#24481] can't build ruby 1.9.0 on mswin32 — 木村浩一 <kimura.koichi@...>
木村です。
わたなべです。
[#24493] Init_stack prototype — Tanaka Akira <akr@...17n.org>
eval.c 内で Init_stack が
[#24505] File::open and mode 'w+' — sheepman <sheepman@...>
こんにちは、sheepman です。
[#24507] test_truncate_rbuf fails — "URABE Shyouhei aka.mput" <root@...>
mput です。 make test-all で以下のエラーが出ています。
In article <80041A7C-2022-11D9-9FB0-000393735AAE@mput.dip.jp>,
なかだです。
In article <200410172227.i9HMRGnh016104@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#24515] Marshal.load causes core dump — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24519] raise dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>
<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>
なかだです。
まつもと ゆきひろです
2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:
2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:
2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:
In article <1098888819.9446.14.camel@rice.p.arika.org>,
2004-10-29 (金) の 11:30 +0900 に Tanaka Akira さんは書きました:
まつもと ゆきひろです
永井@知能.九工大です.
[#24537] No warning when using alias with exsisting method name — SASADA Koichi <ko1@...>
ささだです。
[#24540] IO#readpartial dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
まつもと ゆきひろです
[#24594] unpack("p") dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24595] NKF(nkf2)をCVS Headに入れます — "NARUSE, Yui" <naruse@...>
naruseです。
[#24621] Zlib::Deflate#flush_next_in causes core dump on 1.8 — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24647] Re: oniguruma: big regexp dumps core — "K.Kosako" <kosako@...>
> 次のようにすると core を吐きます。
In article <20041030082637.6A78A33BFF@beryllium.ruby-lang.org>,
まつもと ゆきひろです
斉藤です。CVS の変更以来、鬼車はそう急がないだろうと
[ruby-dev:24580] Re: require dumps core
なかだです。
At Tue, 19 Oct 2004 18:49:38 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:24527]:
> |> 次のようにすると core を吐きます。
> |>
> |> % ./ruby -e '
> |> o = Object.new
> |> def o.to_str
> |> $s.replace ""
> |> "abc"
> |> end
> |> $" << o
> |> $s = "z" * 0x20000
> |> require $s'
> |
> |こんなとこでしょうか。
>
> コミットしてください。
とりあえずコミットしましたが、これだけでは不十分そうです。例え
ばrb_find_file()なども問題が起き得ますし、またそこから返された
Stringに関しても同様です。
渡すときと返すときにfreezeするようにしてみました。
Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.717
diff -U2 -p -d -r1.717 eval.c
--- eval.c 22 Oct 2004 03:04:20 -0000 1.717
+++ eval.c 23 Oct 2004 14:44:08 -0000
@@ -6439,4 +6439,5 @@ rb_load(fname, wrap)
if (!wrap) rb_secure(4);
FilePathValue(fname);
+ fname = rb_str_new4(fname);
tmp = rb_find_file(fname);
if (!tmp) {
@@ -6692,5 +6693,5 @@ search_required(fname, featurep, path)
int type;
- *featurep = fname = rb_str_new4(fname);
+ *featurep = fname;
*path = 0;
ext = strrchr(ftptr = RSTRING(fname)->ptr, '.');
@@ -6706,4 +6707,5 @@ search_required(fname, featurep, path)
*featurep = tmp;
#ifdef DLEXT2
+ OBJ_FREEZE(tmp);
if (rb_find_file_ext(&tmp, loadable_ext+1)) {
*featurep = tmp;
@@ -6713,4 +6715,5 @@ search_required(fname, featurep, path)
#else
rb_str_cat2(tmp, DLEXT);
+ OBJ_FREEZE(tmp);
if (*path = rb_find_file(tmp)) {
return 's';
@@ -6764,4 +6767,5 @@ rb_require_safe(fname, safe)
FilePathValue(fname);
+ fname = rb_str_new4(fname);
saved.vmode = scope_vmode;
saved.node = ruby_current_node;
@@ -6833,5 +6837,7 @@ rb_require(fname)
const char *fname;
{
- return rb_require_safe(rb_str_new2(fname), ruby_safe_level);
+ VALUE fn = rb_str_new2(fname);
+ OBJ_FREEZE(fn);
+ return rb_require_safe(fn, ruby_safe_level);
}
Index: file.c
===================================================================
RCS file: /cvs/ruby/src/ruby/file.c,v
retrieving revision 1.188
diff -U2 -p -d -r1.188 file.c
--- file.c 17 Oct 2004 22:26:31 -0000 1.188
+++ file.c 23 Oct 2004 14:38:58 -0000
@@ -4105,4 +4105,5 @@ rb_find_file_ext(filep, ext)
rb_raise(rb_eSecurityError, "loading from unsafe file %s", f);
}
+ OBJ_FREEZE(fname);
f = StringValueCStr(fname);
*filep = fname;
@@ -4113,4 +4114,5 @@ rb_find_file_ext(filep, ext)
fname = rb_str_dup(*filep);
rb_str_cat2(fname, ext[i]);
+ OBJ_FREEZE(fname);
if (file_load_ok(StringValueCStr(fname))) {
*filep = fname;
@@ -4133,4 +4135,5 @@ rb_find_file_ext(filep, ext)
fname = rb_str_dup(*filep);
rb_str_cat2(fname, ext[j]);
+ OBJ_FREEZE(fname);
found = dln_find_file(StringValueCStr(fname), path);
if (found && file_load_ok(found)) {
@@ -4156,4 +4159,5 @@ rb_find_file(path)
rb_raise(rb_eSecurityError, "loading from unsafe path %s", f);
}
+ OBJ_FREEZE(path);
f = StringValueCStr(path);
}
@@ -4214,5 +4218,7 @@ rb_find_file(path)
}
if (file_load_ok(f)) {
- return rb_str_new2(f);
+ tmp = rb_str_new2(f);
+ OBJ_FREEZE(tmp);
+ return tmp;
}
return 0;
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦