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

[FDclone-users:00719] Re: FDclone 2.09e has been released



 しらいです。

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

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

 3.00 の開発に手間取っているうちに、結構致命的なバグが幾つ
か見つかってしまったので、それらをまとめて release しておき
ます。


> 	組込みコマンド copy でフリーズすることがある点を修正。

 MS-DOS の COMMAND.COM の代替として用意してある組込みコマン
ドですが、UNIX 版にも普通に実装されていますので MS-DOS 版の
みの問題ではありません。
 copy コマンドは、source 側に「+」で区切ったり wildcard を
用いたりして複数のファイルを指定可能ですが、こういう指定をし
た際に NULL pointer を参照してしまっていました。
 この場合の挙動は環境依存だと思いますが、MS-DOS や Windows
ではフリーズという結果になることが多いようです。


> 	カレントディレクトリ喪失時の異常終了を修正。

 [FDclone-users:00713] の報告に対する bug fix です。この対
処部分の patch は [FDclone-users:00714] と同じ実装です。


> 	リダイレクト記述子 <>, >< の既定ファイル記述子の間違いを修正。

 man page には、どちらの redirect も file descriptor 未指定
時の既定値は stdin ということになっています。これは bash を
始めとする Bourne shell 眷族にも共通の仕様です。
 ところが、実際は stdin だけでなく stdout も同時に redirect
してしまう実装になっていました。「<>file 1>&0」と同等の結果
になると思います。
 多分、最初の実装の際に debug 時の利便性を考えてそういうコ
ードを入れたんだと思いますが、それがそのままになっていたんで
しょうね。

 因みに「><」の方は FDclone 独自の実装ですが、「<>」と全く
同じ仕様にしてあります。
 でも対称性から考えるとこっちは stdout を既定値にした方がし
っくりと来るように思えるので、3.00 ではそういう実装にしてあ
ります。


> 	補助グループの判定が甘かった点を修正。

 file の permission によっては、その file の group owner に
effective user が所属するかどうかを見ないと access 権を判断
出来ないことがあります。
 その場合、従来は普通に /etc/group の記述を見ていたのですが、
getty(8) 経由で接続していないような環境では setgroups(2) さ
れないので /etc/group の記述どおりになりません。
 例えば xterm や ssh を使っている際の id(1) の出力を見ると
そうなっていることがあると思います。設定依存なのでそうならな
い場合もありますが。
 で、これを正確に判定するには getgroup(2) で調べる必要があ
るので、そういう実装に改めました。

 尚、古い UNIX の実装ではこの system call は存在しないので
従来の実装になっていますが、4.2BSD 由来なのでそういう環境は
最早現存してはいないでしょうね。
 ただ、HP-UX とか IRIX とかいった POSIX 準拠度の怪しい環境
は System V 扱いにしているので、そういう環境では従来の実装に
なります。
 実際、どっちも最新バージョンでは getgroups(2) を実装してい
るんですが、古いバージョンの状況を調べられないので、そのまま
にしてあります。
 getgroups(2) を使わない実装では file 一覧の色が不正確にな
る程度の弊害で済みますが、使おうとして kernel が非対応の場合
は compile に失敗してしまいますから。

                                               しらい たかし