diff options
Diffstat (limited to 'security/f-prot-antivirus6-ms-bin/patches/patch-aa')
-rw-r--r-- | security/f-prot-antivirus6-ms-bin/patches/patch-aa | 123 |
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 + { |