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

[FDclone-users:00574] Re: ファイル名が表示されない時があるようです、長文失礼。



 しらいです。

In Message-Id <20060914213316.354633.52cbf579@isis.ocn.ne.jp>
        yuji tamura <yuji@isis.ocn.ne.jp>さんwrites:
> まずファイル名が変なのは確かです。
> 「Amazon.co.jpアソシエイト・プログラム運営規約.webarchive」と言
> う長いファイル名です。この .webarchive と言うのは MacOSX の 
> Safari(web ブラウザ)で web ページをまとめて保存する時につく拡
> 張子です。ファイル名は Safari が付けた物です。

 このファイルは Cocoa アプリ の Safari が作ったものなんです
よね?ならば UTF-8 で記述されているものと思われます。その場
合、見た目の長さ以上に文字数がある筈です。
 上のファイル名の場合、EUC-JP なら 55bytes ですが、UTF-8 だ
と 71bytes ありますし、Mac OS X の UTF-8 だと 74 bytes にな
ります。
 とは言え、この程度では buffer overflow しそうにはありませ
んね。


> 関係するかもしれない .fd2rc には、
> -----
> PAGER=lv
> #for MacOSX
> launch  ".webarchive"   "open %C"
> -----
> と書いてあります。

 「open」というのが Safari のコマンド名なんですね?では「%C」
を削除して「open」だけにしてみるとどうなるでしょうか?また、
launch 定義を削除して「PAGER=open」としてみるとどうでしょう?
 どこかで buffer overflow が生じているような症状なのですが、
その場合、全然関係のないところで症状が表面化するので、関係な
さそうなところでも片っ端から試してみないといけません。


> ちなみにこのディレクトリ名は
> 「/Users/yuji/Documents/10 blog」と言う名前になっています、空白
> が入っているのがまずいのかとも思ったのですが...、と言うのは、
> 「/Users/yuji」において(これは MacOSX においてのホームディレク
> トリです)、
> -----
> touch Amazon.co.jpアソシエイト・プログラム運営規約.webarchive
> -----
> として、同じファイル名のファイルを作って見ても、上記と同じ症状は
> 出ないからです。

 空白文字よりはパス名の長さが関係してそうですね。「yuji」の
直下に例えば「012345678901234567」という名前の directory を
作ってその下に置くと、フルパス名が同じ長さになりますよね。
 この状態で再現するかどうか試してみて下さい。


> 何か思い当たる事はありますでしょうか?。

 フルパス名の長さが原因で buffer overflow が起こっていると
するならば、そのサイズを予め多めに確保しておくという回避法が
考えられます。
 フルパス長は <sys/param.h> というヘッダに MAXPATHLEN とい
うマクロ名で定義されています。このヘッダは func.h から呼ばれ
ていますので、この中で再定義してみましょう。
 func.h の最後に以下の記述を追加します。
	#undef	MAXPATHLEN
	#define	MAXPATHLEN	65536

 もしこれで直るようならば、実際にどの部分の MAXPATHLEN の値
が原因になっているかを確認して下さい。
 各 *.c の中で func.h を #include している箇所を探して、上
の記述をその #include の下に記述していきます。func.h は元に
戻しておいて下さい。
 *.c を一個ずつ試していって、症状が直ったところで原因となっ
た *.c が特定出来ると思います。今度はそのファイルの中を探し
で MAXPATHLEN を一個ずつ「MAXPATHLEN * 2」に書換えます。
 この作業を一個ずつ地道に続けていけば、どこかの MAXPATHLEN
の値が原因になっていることが判ると思います。一番怪しそうなの
は dosemu.c でしょうかね。

 もっと直接的な探し方があればいいのですが、Mac OS X 環境が
手元に無いためにこういう遠回りな探し方しか思いつきません。お
手数とは思いますが、頑張って探し出してみて下さい。

                                               しらい たかし