[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00619] Re: 仕切り直します。



 しらいです。

In Message-Id <20061007154245.556282.d14cb3f8@isis.ocn.ne.jp>
        yuji tamura <yuji@isis.ocn.ne.jp>さんwrites:
> こんにちは田村です。

> これは、状況は変わらないようです、
> 「/Users/yuji/Documents/」において
> 「2 auc/」と言うディレクトリ名が消える事を確認しました/

> これでいいでしょうか?
> この状態ですと、やはりファイル名が消える現象は起こります。

> これもやはり、「/Users/yuji/Documents/」において
> 「12 test2/」と言うディレクトリ名が消える事を確認しました。

 結局何の解決にもなりませんでしたね。今のところ症状が直った
のは GNU malloc との置換えくらいですか。では、もう少しメモリ
割当て周りを調べることにしましょう。他に手も無いし。


 [FDclone-users:00610] で libc.c: strdup2() の検証を行なっ
て貰いましたが、同じことを malloc2() と realloc2() でも行な
ってみましょう。
 strdup2() の直前に malloc2() と realloc2() の実体がありま
す。その中に malloc() が二箇所と realloc() が一箇所あります。
その引数の「size」を「size * 16」くらいに増やしてみましょう。
 strdup2() の下には strndup2() があってこの中にも malloc()
があるので、この引数も「i * 16 + 1」くらいに増やします。つい
でに strdup2() の引数も「n * 16 + 1」にしましょう。
 [FDclone-users:00610] と比べると、変更箇所を増やしただけで
なく、増加率を上げています。このくらい増やしておけば、buffer
overflow による不正メモリアクセスの可能性は減るでしょう。

 あと、並行してやって貰っている再現環境の準備ですが、もう余
り最適化に拘らず沢山ファイルの詰まった形でいいので tar ball
をこしらえて下さい。
 /User2/yuji/Documents/ までは directory 内に他のファイルを
置かないようにして下さい。Documents 直下には幾つ置いても構い
ません。
 Document 直下のファイル群ですが、directory については中身
を空にして下さい。regular file については editor 等で編集し
てサイズを 0 にして下さい。
 この状態で /User2 の tar ball を作成すると、それほど巨大な
サイズにならずにすむと思うので、それを送って下さい。勿論、固
める前に再現性は確認して下さいね。

 多分 bug の発生条件は OS ではなくて directory 構成だと思う
んです。Mac OS X と近い malloc library を使っている FreeBSD
だと、directory 構成を合わせれば再現しそうな気がします。
 それで再現しないようなら、もう打つ手も尽きてきたので、以前
言ってた remote login で何とかしてみましょうか。SSH 公開鍵で
も送れば準備可能ですか?

 再現性が悪くて遅々として進みませんが、もう少しおつき合い下
さい。

                                               しらい たかし