summaryrefslogtreecommitdiff
path: root/security/f-prot-antivirus6-ms-bin/patches/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'security/f-prot-antivirus6-ms-bin/patches/patch-aa')
-rw-r--r--security/f-prot-antivirus6-ms-bin/patches/patch-aa123
1 files changed, 123 insertions, 0 deletions
diff --git a/security/f-prot-antivirus6-ms-bin/patches/patch-aa b/security/f-prot-antivirus6-ms-bin/patches/patch-aa
new file mode 100644
index 00000000000..45ec67fcf24
--- /dev/null
+++ b/security/f-prot-antivirus6-ms-bin/patches/patch-aa
@@ -0,0 +1,123 @@
+$NetBSD: patch-aa,v 1.1.1.1 2009/09/22 17:41:07 taca Exp $
+
+--- mailtools/scan-mail.pl.orig 2008-01-19 23:53:47.000000000 +0900
++++ mailtools/scan-mail.pl
+@@ -81,11 +81,6 @@
+
+ use strict;
+
+-# scan-mail.pl is in mailtools/scan-mail.pl, add mailtools/Anomy/bin
+-# to @INC to find Anomy::
+-use FindBin '$Bin';
+-use lib "$Bin/../perl/lib";
+-
+ use Socket;
+ use Anomy::Sanitizer ();
+ use Anomy::Sanitizer::FProt::Client ();
+@@ -130,7 +125,7 @@ my @CONFIG_HARD = (
+
+ my %CONFIG_SOFT = (
+ # unknown=='check next rule'
+- SCANMAIL_SCANLIST => ['file_list_1=.*','file_list_1_policy=unknown:unknown:drop:drop', 'file_list_1_scanner = 0:1:2:builtin/fpscand %FILENAME'],
++ SCANMAIL_SCANLIST => ['file_list_1=.*','file_list_1_policy=unknown:unknown:drop:unknown', 'file_list_1_scanner = 0:1:2:builtin/fpscand %FILENAME'],
+ SCANMAIL_BANLIST => ['file_list_2 =','file_list_2_policy=drop', 'file_list_2_scanner=0'],
+ SCANMAIL_STOPLIST => ['file_list_3 =','file_list_3_policy=save', 'file_list_3_scanner=0']
+ );
+@@ -201,6 +196,7 @@ if (my $val = $conf->{SCANMAIL_LOGLEVEL}
+ # script, this is fugly
+ #
+
++my $datadir = "@VARDIR@";
+ my $debug = 0;
+ my $verbose = 0;
+ my $quarantine = 0;
+@@ -210,7 +206,7 @@ my $milter_cf = '/etc/mail/sendmai
+ my $milter_conn = undef;
+ my $milter_name = 'fp-milter';
+ my $milter_pid = undef;
+-my $fprot_milter = "$Bin/../mailtools/fp-milter";
++my $fprot_milter = "@FPROTDIR@/fp-milter";
+ my $postfix = 0;
+ my $postfix_ret = undef;
+ my $server = 0;
+@@ -219,7 +215,8 @@ my $proxy = 0;
+ my $proxy_addr = '0.0.0.0:25';
+ my $smtp_addr = '127.0.0.1:26';
+ my $backup = 0;
+-my $backup_location = "$Bin/../backup/";
++my $backup_location = "$datadir/backup/";
++my $pid_file = "$datadir/scan-mail.pid";
+
+ # use this for really complex configuration of
+ # scan-mail. /etc/f-prot.conf should take care of the simple things
+@@ -239,7 +236,7 @@ if (my $val = $conf->{SCANMAIL_DROP_MALW
+ # The temporary dir to use for files that are scanned and tmp data
+ # produced elsewhere (via tmpfile) in the program
+ my $TMPDIR = do {
+- my $tmp = '/tmp'; # default
++ my $tmp = '/var/tmp'; # default
+
+ if ($ENV{TMPDIR} and $ENV{TMPDIR} ne $tmp) {
+ $tmp = $ENV{TMPDIR};
+@@ -441,9 +438,10 @@ if ($daemon)
+ defined(my $pid = fork) or die "Can't fork: $!";
+ exit if $pid;
+ setsid or die "Can't start a new session: $!";
+- open PID_FILE, '>/var/run/scan-mail.pid' or die "Can't open pid file: $!";
+- print PID_FILE $$;
++ open PID_FILE, ">$pid_file" or die "Can't open pid file: $!";
++ print PID_FILE "$$\n";
+ close PID_FILE;
++ $SIG{'TERM'} = $SIG{'HUP'} = \&clean_up;
+ open STDERR, '>&STDOUT' or die "Can't dup stdout: $!";
+ }
+
+@@ -602,6 +600,12 @@ else
+
+ ##[ Subroutines ]##############################################################
+
++sub clean_up
++{
++ unlink($pid_file);
++ exit(0);
++}
++
+ # proxy address, smtp address
+ sub run_smtp_proxy
+ {
+@@ -1020,7 +1024,7 @@ sub do_scan
+ my $subdir = "/".$m.$d."/";
+ unless (-d $backup_location)
+ {
+- unless (mkdir($backup_location,1777))
++ unless (mkdir($backup_location,1777) or $!{'EEXIST'})
+ {
+ my $err = "Unable to create backup basedir $backup_location: $!";
+ syslog err => $err;
+@@ -1032,7 +1036,7 @@ sub do_scan
+
+ unless(-d $pathto)
+ {
+- unless (mkdir($pathto,1777))
++ unless (mkdir($pathto,1777) or $!{'EEXIST'})
+ {
+ my $err = "Unable to create backup subdir $pathto: $!";
+ syslog err => $err;
+@@ -1080,7 +1084,16 @@ sub do_scan
+ }
+
+ # Try to delete the directory. Will fail unless it's empty.
+- rmdir($pathto);
++ # rmdir($pathto);
++ #
++ # But it cause some race, keep the directory and remove it by
++ # another script using find command or execute same functionality
++ # in this script.
++ #
++ # #!/bin/sh
++ # cd $backup_location
++ # find . -type d -name '[0-1]*' -mtime +7 rmdir {} \; >/dev/null 2>&1
++ #
+ }
+ else
+ {