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

[FDclone-users:00857] Re: FDclone 3.00f has been released



 しらいです。

In Message-Id <20100529142151.6fa6373c.shohta@seagreen.ocn.ne.jp>
        Hironori (Shohta) NAGAKUBO <shohta@seagreen.ocn.ne.jp>さんwrites:
> Good **, 長久保@福島いわき です。

> 今度は「COPY_TREE/MOVE_TREE 中の」移動中に、多分日本語フォルダ箇所で
> 「異常終了」してしまいます。

 ごめんなさい。コード効率化のためにいじった箇所で embug し
てしまったようです。余計なことはしないで、純粋に bug fix だ
けに留めておけば良かったかも知れません。

 日本語文字列処理用に memchr() の wrapper 関数を用意してあ
るのですが、その肝腎の日本語を扱う際に文字数のカウントミスを
犯してしまっていました。
 最後に修正 patch をつけておきますので、必要な方はご利用下
さい。

 この影響範囲は広く、日本語を含む directory へのアクセスで
ことごとく異常終了する点のみならず、他にも日本語文字列処理で
buffer overflow を起こす可能性があります。
 この wrapper 関数を使っている箇所は他にも幾つかありますが、
幸い、このパス名処理以外の箇所ではまず日本語を用いる場面がな
さそうなので、実用上の問題はないと思います。
 しかし、ユーザが意図的にこの bug を突ついた場合は security
hole となり得るので、今回は早めに次期 release を行なう予定で
す。


> 当面前に戻して、次なるものを待ちたいと思います。

 FD-3.00g での embug なので、FD-3.00e 以前では特に支障ない
と思われます。ご安心下さい。


---- Cut Here ---
diff -ur ../old/FD-3.00f/string.c ./string.c
--- ../old/FD-3.00f/string.c	Sat May 29 00:00:00 2010
+++ ./string.c	Sat May 29 19:52:52 2010
@@ -43,7 +43,10 @@
 {
 	for (; n-- > 0; s++) {
 		if (*s == c) return((char *)s);
-		else if (iswchar(s, 0)) s++;
+		else if (iswchar(s, 0)) {
+			if (n-- <= 0) break;
+			s++;
+		}
 	}
 
 	return(NULL);
---- Cut Here ---

                                               しらい たかし