[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00719] Re: FDclone 2.09e has been released
- Subject: [FDclone-users:00719] Re: FDclone 2.09e has been released
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sun, 16 Sep 2007 01:33:17 +0900
しらいです。
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 に失敗してしまいますから。
しらい たかし