These errors were logged by amavisd-new: ---snip------------------------- amavis[2643]: (02643-05) (!)do_cabextract: can't parse toc line: File size | Date Time | Name amavis[2643]: (02643-05) (!)do_cabextract: can't parse toc line: All done, no errors. ---snap-------------------------
Testing cabextract manually showed this output: ---snip------------------------- Viewing cabinet: 12132.cab File size | Date Time | Name -----------+---------------------+------------- 122880 | 01.07.2014 15:15:52 | gasetz_01_07_2014_F8484273.exe All done, no errors ---snap------------------------- Fix it by making the regex more relaxed for cabextract version 1.2. Also ignore the "All done, no errors" final output, so warnings would still be logged. diff -u -r -p amavisd-new-2.9.1/amavisd amavisd-new.cabextract/amavisd --- amavisd-new-2.9.1/amavisd 2014-06-27 19:46:02.000000000 +0200 +++ amavisd-new.cabextract/amavisd 2014-07-02 09:30:42.431978269 +0200 @@ -30989,7 +30989,7 @@ sub do_cabextract($$$) { local($1,$2); my $bytes = 0; my $ln; my $entries_cnt = 0; for ($! = 0; defined($ln=$proc_fh->getline); $! = 0) { chomp($ln); - next if $ln =~ /^(File size|----|Viewing cabinet:|\z)/; + next if $ln =~ /^( ?File size|----|Viewing cabinet:|All done, no errors|\z)/; if ($entries_cnt++, $MAXFILES && $entries_cnt > $MAXFILES) { die "Maximum number of files ($MAXFILES) exceeded" } if ($ln !~ /^\s* (\d+) \s* \| [^|]* \| \s (.*) \z/x) {