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

[debian-users:48441] Re: Debian4.0のamavis-newのlha展開について



武藤@Debianぷろじぇくとです。

At Tue, 17 Apr 2007 19:15:12 +0900,
Ryuhei Funatsu wrote:
> lhaアーカイブのファイル名取得処理に何か問題があるような気がしましたので
> amavis-newの該当部分(do_lha)から正規表現を取ってきて、以下のような
> テストスクリプトでテストしたところ、Windowsによる圧縮ではファイル名を
> 取得できないようでした。
> 
> tmp.pl
> # windows lha
> $line="[MS-DOS]                  5321  28.2% Jan 19 11:12 filename";
> $line =~ /^(?:\S+\s+){6}\S+\s*(\S.*?)\s*\z/s;
> print $1,"\n";
> 
> # debian lha
> $line = "-rw-r--r--     0/0       88797  11.4% Apr 17 17:43 filename";
> $line =~ /^(?:\S+\s+){6}\S+\s*(\S.*?)\s*\z/s;
> print $1,"\n";

ad-hocですが、該当箇所を

( $ln =~ /^\[[^\]]+\]\s+(?:\S+\s+){5}(\S.*?)\s*\z/s ||
$ln =~ /^(?:\S+\s+){6}\S+\s*(\S.*?)\s*\z/s )

のようにするとか?ちなみにMacOSで作ったLZHファイルは[Mac OS]となる
ようです。

> また、amavis-newのdo_lha部分だけ見ると、日本語ファイル名(SHIFT-JIS)の
> ファイル名がlha中にあると同様にすり抜けが発生するような気がするのですが
> そんなことは無いでしょうか?

試してはいないですが駄目かもしれません。zipなどでも同様に駄目な
気はします。エンコーディングをリスト出力時や展開時に変換してくれれば
動きそうではありますが。
-- 
武藤 健志@ kmuto @ kmuto.jp
           Debian/JPプロジェクト   (kmuto@debian.org, kmuto@debian.or.jp)
           株式会社トップスタジオ  (kmuto@xxxxxxxxxxxxxxx)
URI: http://kmuto.jp/ (Debianな話題など)