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

[FDclone-users:00811] Re: FDclone 3.00b has been released



 しらいです。

In Message-Id <20080706013623.DAB3C48068C@yuka.unixusers.net>
        Takashi SHIRAI <shirai@unixusers.net>writes:
>  しらいです。

>  本日 fj.sources に FDclone 3.00b の patch を投稿しましたの
> でご案内申上げます。full package は以下の URL で順次公開され
> ていくと思います。

 3.00a の release から余り日が経っていない状況ですが、例の
configure の一件で大量に bug fix したので、早めの release に
しました。


>  以下は HISTORY より今回の変更点の抜粋です。

 殆んどは [FDclone-users:00804] で解説済ですので、そこから
漏れている分の 4 点のみ解説します。


> 	未定義フロッピードライブ利用時のバッファオーバフローを修正。

 3.00 でキー割当てやランチャ登録の上限数を撤廃しましたが、
この時に同時に floppy drive の登録数の上限も無くしています。
man page には載っていませんが 32 が上限でした。
 その際に、未定義 drive の判別法に実装ミスがあり、常に定義
済 drive と判断されてしまっていたため、未定義 drive を参照し
ようとすると確保領域の外を参照していました。

 一般的にはメモリ確保した近傍の領域は 0 で埋まっていること
が多いので、overflow した場合も無効な drive 設定が参照されて
error で弾かれるのですが、そうなってくれる保証はありません。
 overflow した領域にたまたま有効な drive 設定が書かれていた
場合は、あり得ない drive 設定に従って freeze したり core を
吐いたりしていました。
 そういったたまたまのケースは殆んど出現しないために、これま
で見逃されてしまっていました。


> 	"" で括られた中で ${} 内にメタ文字を含めなかった点を修正。

 [FDclone-users:00801] で言及した ${} 内改行の件ですが、そ
の後 dovecot 作者からの指摘があって、"" で括られた中であれば
${} 内改行は許される筈だという話でした。
 勿論これは POSIX 規格での話でして、確かに POSIX にはそうい
う記述があります。でも FDclone は Bourne shell 互換なので、
当初は POSIX に合わせる必要はないと思っていました。
 しかし、4.3BSD-Reno の /bin/sh を compile して動作確認して
みたところ、素の Bourne shell でも "" で括られた中の ${} 内
改行は syntax error になりませんでした。

 ということで、"" で括られていれば BASHSTYLE や STRICTPOSIX
といった shell 文法仕様に関わる識別子を定義しないでも ${} 内
改行を許すという仕様に改めています。


> 	内部変数 FD_VERSION の各種ドキュメント記述ミスを修正。

 man page には「VERSION」という変数に version 文字列を代入
していると書かれていましたが、実際には「FD_VERSION」という変
数名でした。
 「VERSION」という汎用的な変数名だと他への影響が大きいので
そうしたのですが、何故か man page の記述が実態に合っていませ
んでしたので、記述の方を修正してあります。


> 	内部変数 FD_VERSION の値が未設定になることがある点を修正。

 fdsh を -c option 付で起動した際に VERSION への代入が行な
われないままだったので、その場合も代入されるように修正しまし
た。

                                               しらい たかし