[Mimedefang] MIMEDefang 2.42 wantarray correction patch
Michael Haro
mharo at bitsurf.net
Thu Apr 8 14:33:19 EDT 2004
I just noticed that mimedefang.pl contains the following...
return (wantarray ? (999, 'swerr', 'tempfail') : 1);
I'm assuming if *_contains_virus_* is called in scalar form it should
return the same $code as if called in array form.
Attached is a patch that corrects this for every instance of wantarray in
the code.
Michael
-------------- next part --------------
--- mimedefang.pl.in.orig Thu Apr 8 11:18:31 2004
+++ mimedefang.pl.in Thu Apr 8 11:24:38 2004
@@ -2102,7 +2102,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run File::Scan
if ( my $virus = $scanner->scan($path) ) {
@@ -2118,7 +2118,7 @@
$CurrentVirusScannerMessage = $msg;
md_syslog('err', "$MsgID: entity_contains_virus_filescan: $msg");
$VirusScannerMessages .= "$msg\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
} elsif ( $scanner->skipped() ) {
# File was skipped due to size, etc.
# This occurs when it's not possible for a file to be infected
@@ -2130,7 +2130,7 @@
$CurrentVirusScannerMessage = $msg;
$VirusScannerMessages .= "$msg\n";
$VirusName = 'suspicious';
- return (wantarray ? (2, 'suspicious', 'quarantine') : 1);
+ return (wantarray ? (2, 'suspicious', 'quarantine') : 2);
} else {
# Entity is clean
return (wantarray ? (0, 'ok', 'ok') : 0);
@@ -2181,7 +2181,7 @@
$CurrentVirusScannerMessage = $msg;
$VirusScannerMessages .= "$msg\n";
$VirusName = 'suspicious';
- return (wantarray ? (2, 'suspicious', 'quarantine') : 1);
+ return (wantarray ? (2, 'suspicious', 'quarantine') : 2);
}
} elsif ( my $err = $scanner->error() ) {
# Scanner error
@@ -2190,7 +2190,7 @@
$CurrentVirusScannerMessage = $msg;
md_syslog('err', "$MsgID: message_contains_virus_filescan: $msg");
$VirusScannerMessages .= "$msg\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
}
closedir(DIRHANDLE);
@@ -2223,7 +2223,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run uvscan
@@ -2343,7 +2343,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (! ($path =~ m+^/+)) {
@@ -2423,7 +2423,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run fsav
@@ -2671,7 +2671,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
return scan_file_using_carrier_scan($entity->bodyhandle->path,
$host);
@@ -2693,7 +2693,7 @@
if (!opendir(DIR, "./Work")) {
md_syslog('err', "message_contains_virus_carrier_scan: Could not open ./Work directory: $!");
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Scan all files in Work
@@ -2910,7 +2910,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my $path = $entity->bodyhandle->path;
@@ -2956,7 +2956,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my $sock = IO::Socket::INET->new($host);
if (defined $sock) {
@@ -2967,11 +2967,11 @@
}
if (!$sock->print("SCAN $path\n")) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->flush) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my($output);
chomp($output = $sock->getline);
@@ -3008,11 +3008,11 @@
if (defined $sock) {
if (!$sock->print("SCAN $CWD/Work\n")) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->flush) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my($output);
chomp($output = $sock->getline);
@@ -3055,7 +3055,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run antivir
@@ -3134,7 +3134,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run vexira
@@ -3214,7 +3214,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run antivir
@@ -3300,7 +3300,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run clamscan
@@ -3380,7 +3380,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run aveclient
@@ -3488,7 +3488,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run antivir
@@ -3614,7 +3614,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run f-prot
@@ -3720,7 +3720,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run antivir
@@ -3802,7 +3802,7 @@
# Get filename
my($path) = $body->path;
if (!defined($path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
# Run nvcc
@@ -3883,7 +3883,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my $sock = IO::Socket::UNIX->new(Peer => $sophie_sock);
if (defined $sock) {
@@ -3894,19 +3894,19 @@
}
if (!$sock->print("$path\n")) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->flush) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my($output);
if (!$sock->sysread($output,256)) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->close) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if ($output =~ /^0/) { return (wantarray ? (0, 'ok', 'ok') : 0); }
elsif ($output =~ /^1/) {
@@ -3920,12 +3920,12 @@
$errmsg = "$1" if $output =~ /^-1:(.*)$/;
md_syslog('err', "$MsgID: entity_contains_virus_sophie: $errmsg ($path)");
$VirusScannerMessages .= "Sophie error: $errmsg\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
else {
md_syslog('err', "$MsgID: entity_contains_virus_sophie: unknown response - $output ($path)");
$VirusScannerMessages .= "Sophie error: unknown response - $output\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
}
# Could not connect to daemon
@@ -3951,20 +3951,20 @@
if (defined $sock) {
if (!$sock->print("$CWD/Work\n")) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->flush) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my($output, $ans);
$ans = $sock->sysread($output, 256);
if (!defined($ans)) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->close) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if ($output =~ /^0/) { return (wantarray ? (0, 'ok', 'ok') : 0); }
elsif ($output =~ /^1/) {
@@ -3978,12 +3978,12 @@
$errmsg = "$1" if $output =~ /^-1:(.*)$/;
md_syslog('err', "$MsgID: message_contains_virus_sophie: $errmsg ($CWD/Work)");
$VirusScannerMessages .= "Sophie error: $errmsg\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
else {
md_syslog('err', "$MsgID: message_contains_virus_sophie: unknown response - $output ($CWD/Work)");
$VirusScannerMessages .= "Sophie error: unknown response - $output\n";
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
}
# Could not connect to daemon
@@ -4011,7 +4011,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my $sock = IO::Socket::UNIX->new(Peer => $clamd_sock);
if (defined $sock) {
@@ -4022,24 +4022,24 @@
}
if (!$sock->print("SCAN $path\n")) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if (!$sock->flush) {
$sock->close;
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my($output, $ans);
$ans = $sock->sysread($output,256);
$sock->close;
if (!defined($ans) || !$ans) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
if ($output =~ /: (.+) FOUND/) {
$VirusScannerMessages .= "clamd found the $1 virus.\n";
$VirusName = $1;
return (wantarray ? (1, 'virus', 'quarantine') : 1);
} elsif ($output =~ /: .+ERROR$/) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
return (wantarray ? (0, 'ok', 'ok') : 0);
}
@@ -4134,7 +4134,7 @@
return (wantarray ? (0, 'ok', 'ok') : 0);
}
if (!defined($entity->bodyhandle->path)) {
- return (wantarray ? (999, 'swerr', 'tempfail') : 1);
+ return (wantarray ? (999, 'swerr', 'tempfail') : 999);
}
my $sock = IO::Socket::UNIX->new(Peer => $trophie_sock);
if (defined $sock) {
More information about the MIMEDefang
mailing list