[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)

岡田です。

10 messages 2000/09/01

[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2000/09/14
[#11077] Re: SIGINT on windows — matz@... (Yukihiro Matsumoto) 2000/09/27

まつもと ゆきひろです

[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

19 messages 2000/09/18
[#10955] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10963] Re: dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/19

なかだです。

[#10964] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

15 messages 2000/09/20

[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>

小松です.

16 messages 2000/09/20
[#10989] Re: httphead.rb proxy version problem — Minero Aoki <aamine@...> 2000/09/20

あおきです。

[ruby-dev:10887] Re: setenv,unsetenv

From: matz@... (Yukihiro Matsumoto)
Date: 2000-09-11 07:33:41 UTC
List: ruby-dev #10887
まつもと ゆきひろです

In message "[ruby-dev:10885] Re: setenv,unsetenv"
    on 00/09/11, Yukihiro Matsumoto <matz@zetabits.com> writes:

||そして,などのようにOSの環境などは書いていたのですが,どうやら
||sample/rbc.rbを使用した場合にのみ起こります.
||で,原因となっているのは,hash.c:1070行目の
||	free(environ[i])
||の部分です.
|
|再現しません。なぜだろう。見た限りでは見落としはなさそうなの
|だが。

分かりました。rbcはreadlineライブラリを使うのですが、これが
初期化ルーチンの内部でputenvを使っているため、environの値が
origenvironと食い違っていました。結果としてenvironの要素のコ
ピーが行われず、mallocされていない領域をfreeしていたのでした。

とりあえず、freeしようとする領域がorigenvironの対応する要素
と同じアドレスでないことを確認するようにして対処しました。も
ちろんputenvの実装によってはもうちょっとイヤらしいことになる
可能性も否定できませんが。

--- hash.c	2000/09/04 08:24:01	1.35
+++ hash.c	2000/09/11 07:33:24
@@ -1057,3 +1057,4 @@
     if (!value) {
-	free(environ[i]);
+	if (environ[i] != origenviron[i])
+	    free(environ[i]);
 	while (environ[i]) {
@@ -1069,3 +1070,4 @@
     else {
-	free(environ[i]);
+	if (environ[i] != origenviron[i])
+	    free(environ[i]);
     }

In This Thread