From: Yukihiro Matsumoto Date: 2004-12-13T11:57:56+09:00 Subject: [ruby-dev:25169] Re: double free problem まつもと ゆきひろです In message "Re: [ruby-dev:25157] Re: double free problem" on Sat, 11 Dec 2004 22:49:53 +0900, Tanaka Akira writes: |> ふうむ。linux + valgrind では発見できませんでした。 |> どなたか再現情報をお持ちの方はいらっしゃいませんでしょうか。 | |なんとなく boron で試した所、Invalid free() が出て来ましたが、これは違 |うんでしょうか。 なんで私のところで検出できないのかというのは謎として残ります が、原因は分かりました。 externが設定したrealpath(3)の戻り値のtypeは"s"なので、返さ れた値をfreeする。 しかし、realpath(3)は2番目の引数を返す。つまり、戻されたポ インタは「"\0" * LIBC::PATH_MAX」で作られたStringのptrであ る。 だから、そのStringを操作するとエラー、開放するとdouble free。 ということのようです。この問題はdlの中身が分からないと対処で きないんで、立石さんにお願いしないといけないようです。