Hello community, here is the log from the commit of package amavisd-new for openSUSE:Factory checked in at 2018-10-23 20:37:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/amavisd-new (Old) and /work/SRC/openSUSE:Factory/.amavisd-new.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "amavisd-new" Tue Oct 23 20:37:13 2018 rev:68 rq:643554 version:2.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/amavisd-new/amavisd-new.changes 2018-03-18 21:44:45.693893286 +0100 +++ /work/SRC/openSUSE:Factory/.amavisd-new.new/amavisd-new.changes 2018-10-23 20:37:18.136765667 +0200 @@ -1,0 +2,23 @@ +Sun Oct 14 06:59:01 UTC 2018 - [email protected] + +- update to version 2.11.1 + * removed a trailing dot element from @INC, as a workaround for a perl + vulnerability CVE-2016-1238 + * amavis-services: bumping up syslog level from LOG_NOTICE to LOG_ERR + for a message "PID <pid> went away", and removed redundant newlines + from some log messages + * safe_decode() and safe_decode_utf8(): avoid warning messages + "Use of uninitialized value in subroutine entry" + in Encode::MIME::Header when the $check argument is undefined + * @sa_userconf_maps has been extended to allow loading of per-recipient + (or per-policy bank, or global) SpamAssassin configuration set from + LDAP. For consistency with SQL a @sa_userconf_maps entry prefixed with + 'ldap:' will load SpamAssassin configuration set using the + load_scoreonly_ldap() method; a patch by Atanas Karashenski + * add some Sanesecurity.Foxhole false positives to the default + list @virus_name_to_spam_score_maps + * updated some comments +- update amavis-milter to version 2.6.1 + * Fixed bug when creating amavisd-new policy bank names + +------------------------------------------------------------------- @@ -11 +34 @@ - amavisd-new should require spamassassine + amavisd-new should require spamassassin Old: ---- amavisd-milter-1.6.0.tar.gz amavisd-new-2.11.0.tar.xz New: ---- amavisd-milter-1.6.1.tar.gz amavisd-new-2.11.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ amavisd-new.spec ++++++ --- /var/tmp/diff_new_pack.LZzi8L/_old 2018-10-23 20:37:20.684762623 +0200 +++ /var/tmp/diff_new_pack.LZzi8L/_new 2018-10-23 20:37:20.688762618 +0200 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -28,17 +28,17 @@ %define avuser vscan %define avgroup vscan Name: amavisd-new -Version: 2.11.0 +Version: 2.11.1 Release: 0 Summary: High-Performance E-Mail Virus Scanner -License: GPL-2.0+ +License: GPL-2.0-or-later Group: Productivity/Networking/Security -Url: http://www.ijs.si/software/amavisd/ -Source0: http://www.ijs.si/software/amavisd/%{name}-%{version}.tar.xz +Url: https://amavis.org/ +Source0: https://amavis.org/%{name}-%{version}.tar.bz2 Source1: sysconfig.amavis Source2: rc.amavis Source3: amavisd-new-rpmlintrc -Source4: amavisd-milter-1.6.0.tar.gz +Source4: amavisd-milter-1.6.1.tar.gz Source5: amavis.service Source6: amavisd-milter.sh Patch1: activate_virus_scanner.diff ++++++ amavisd-milter-1.6.0.tar.gz -> amavisd-milter-1.6.1.tar.gz ++++++ ++++ 7264 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/CHANGES new/amavisd-milter-1.6.1/CHANGES --- old/amavisd-milter-1.6.0/CHANGES 2013-05-19 23:07:26.000000000 +0200 +++ new/amavisd-milter-1.6.1/CHANGES 2015-05-24 22:50:39.000000000 +0200 @@ -1,10 +1,21 @@ This is the CHANGELOG for amavisd-milter. +20150524: + amavisd-milter-1.6.1: + + Bug and compatibility fixies: + - Fixed bug when creating amavisd-new policy bank names. + +20150524: + Fixed bug when creating amavisd-new policy bank names. + + Thanks to: Christian Roessner <[email protected]> + 20130519: amavisd-milter-1.6.0: New features: - - Added new amavisd-milter option -B which pases value of + - Added new amavisd-milter option -B which passes value of {daemon_name} milter macro as amavisd-new policy bank name. Bug and compatibility fixies: @@ -16,7 +27,7 @@ Added new amavisd-milter option -B which uses value of {daemon_name} milter macro as amavisd-new policy bank name. - Thanks to: Andreas Schulze <[email protected]> + Thanks to: Andreas Schulze 20130125: Included amavisd-milter.spec for compilation with rpmbuild. @@ -42,7 +53,7 @@ 20100501: Amavisd-new 2.7.0 introduce new AM.PDP response log_id. - Thanks to: Andreas Schulze <[email protected]> + Thanks to: Andreas Schulze 20100131: amavisd-milter-1.4.1: @@ -440,4 +451,4 @@ First public release. Fully tested on FreeBSD 5.3. -$Id: CHANGES,v 1.77 2013/05/19 21:07:26 reho Exp $ +$Id: CHANGES,v 1.81 2015/05/24 20:50:39 reho Exp $ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/Makefile.am new/amavisd-milter-1.6.1/Makefile.am --- old/amavisd-milter-1.6.0/Makefile.am 2013-01-25 16:36:09.000000000 +0100 +++ new/amavisd-milter-1.6.1/Makefile.am 2015-05-25 00:02:49.000000000 +0200 @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.6 2013/01/25 15:36:09 reho Exp $ +# $Id: Makefile.am,v 1.10 2015/05/24 22:02:49 reho Exp $ # Subdirectories SUBDIRS= \ @@ -31,7 +31,7 @@ configure.ac ../website/amavisd-milter.html: amavisd-milter/amavisd-milter.8 - nroff -mdoc amavisd-milter/amavisd-milter.8 | \ + env LC_ALL=C nroff -c -mdoc amavisd-milter/amavisd-milter.8 | \ sed -e '1s/.*//' -e '$$s/.*//' | \ man2html -topm 0 -botm 0 -title "amavisd-milter(8) manual page"| \ sed -e 's;\(http:[^ ]*\);<a href="\1">\1</a>;' \ @@ -42,7 +42,7 @@ website: ../website/amavisd-milter.html README: amavisd-milter/amavisd-milter.8 - nroff -mdoc amavisd-milter/amavisd-milter.8 | col -b | \ + env LC_ALL=C nroff -c -mdoc amavisd-milter/amavisd-milter.8 | col -b | \ sed -e '1s/.*/This is the README for the amavisd-milter(8)./' \ -e '$$s/.*//' > README diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/README new/amavisd-milter-1.6.1/README --- old/amavisd-milter-1.6.0/README 2013-05-19 23:07:55.000000000 +0200 +++ new/amavisd-milter-1.6.1/README 2015-05-25 00:03:20.000000000 +0200 @@ -1,20 +1,20 @@ This is the README for the amavisd-milter(8). -1mNAME0m - 1mamavisd-milter 22m— sendmail milter for amavisd-new +NAME + amavisd-milter -- sendmail milter for amavisd-new -1mSYNOPSIS0m - 1mamavisd-milter 22m[1m-Bfhv22m] [1m-d 4m22mdebug-level24m] [1m-D 4m22mdelivery-care-of24m] - [1m-m 4m22mmax-conns24m] [1m-M 4m22mmax-wait24m] [1m-p 4m22mpidfile24m] [1m-P22m] - [1m-q 4m22mbacklog24m] [1m-s 4m22msocket24m] [1m-t 4m22mtimeout24m] [1m-S 4m22msocket24m] - [1m-T 4m22mtimeout24m] [1m-w 4m22mdirectory24m] - -1mDESCRIPTION0m - The 1mamavisd-milter 22mis a sendmail milter (mail filter) for 1mamavisd-new0m - 2.4.3 and above and 1msendmail 22m8.13 and above (limited support for 8.12 is +SYNOPSIS + amavisd-milter [-Bfhv] [-d debug-level] [-D delivery-care-of] + [-m max-conns] [-M max-wait] [-p pidfile] [-P] + [-q backlog] [-s socket] [-t timeout] [-S socket] + [-T timeout] [-w directory] + +DESCRIPTION + The amavisd-milter is a sendmail milter (mail filter) for amavisd-new + 2.4.3 and above and sendmail 8.13 and above (limited support for 8.12 is provided). - Instead of older 1mamavis-milter 22mhelper program, full 1mamavisd-new 22mfunction‐ + Instead of older amavis-milter helper program, full amavisd-new function- ality is available, including adding spam and virus information header fields, modifying Subject, adding address extensions and removing certain recipients from delivery while delivering the same message to the rest. @@ -27,134 +27,134 @@ http://sourceforge.net/projects/amavisd-milter - 1mOptions0m + Options The options are as follows: - 1m-B 22mUses 1m{daemon_name} 22mmacro as a policy bank name (see 1mPOLICY BANKS0m + -B Uses {daemon_name} macro as a policy bank name (see POLICY BANKS below). - 1m-d 4m22mdebug-level0m - Set the debug level to 1mdebug-level22m. Debugging traces become more + -d debug-level + Set the debug level to debug-level. Debugging traces become more verbose as the debug level increases. Maximum is 9. - 1m-D 4m22mdelivery-care-of0m - Set AM.PDP request attribute delivery_care_of to 1mclient 22m(default) - or 1mserver22m. When 1mclient 22mmethod is used then 1mamavisd-milter 22mis + -D delivery-care-of + Set AM.PDP request attribute delivery_care_of to client (default) + or server. When client method is used then amavisd-milter is responsible to forward the message to recipients. This method doesn't allow personalized header or body modification. - When 1mserver 22mmethod is used then 1mamavisd-new 22mis responsible to + When server method is used then amavisd-new is responsible to forward the message to recipients and can provide personalized header and body modification. $forward_method in amavisd.conf must point to some place willing to accept mail without further - checking in 1mamavisd-new22m. + checking in amavisd-new. - 1m-f 22mRun 1mamavisd-milter 22min the foreground (i.e. do not daemonize). + -f Run amavisd-milter in the foreground (i.e. do not daemonize). Print debug messages to the terminal. - 1m-h 22mPrint help page and exit. + -h Print help page and exit. - 1m-m 4m22mmax-conns0m - Maximum concurrent 1mamavisd 22mconnections (default 0 - unlimited + -m max-conns + Maximum concurrent amavisd connections (default 0 - unlimited number of connections). It must agree with the $max_servers entry in amavisd.conf. - 1m-M 4m22mmax-wait0m - Maximum wait for connection to 1mamavisd 22min seconds (default 300 = + -M max-wait + Maximum wait for connection to amavisd in seconds (default 300 = 5 minutes). It must be less then sending MTA timeout for a response to the final "." that terminates a message on sending - MTA. 1msendmail 22mhas default value 1 hour, 1mpostfix 22m10 minutes and - 1mqmail 22m20 minutes. We suggest to use less than 10 minutes. + MTA. sendmail has default value 1 hour, postfix 10 minutes and + qmail 20 minutes. We suggest to use less than 10 minutes. - 1m-p 4m22mpidfile0m + -p pidfile Use this pid file (default /var/amavis/amavisd-milter.pid). - 1m-P 22mWhen 1mamavisd-new 22mfails mail will be passed through unchecked. + -P When amavisd-new fails mail will be passed through unchecked. - 1m-q 4m22mbacklog0m + -q backlog Sets the incoming socket backlog used by listen(2). If it is not set or set to zero, the operating system default is used. - 1m-s 4m22msocket0m - Communication socket between 1msendmail 22mand 1mamavisd-milter 22m(default + -s socket + Communication socket between sendmail and amavisd-milter (default /var/amavis/amavisd-milter.sock). The protocol spoken over this - socket is 1mMILTER 22m(Mail FILTER). It must agree with the + socket is MILTER (Mail FILTER). It must agree with the INPUT_MAIL_FILTER entry in sendmail.mc - The 4msocket24m should be in "proto:address" format: - 1m· {unix|local}:/path/to/file 22m- A named pipe. - 1m· inet:port@{hostname|ip-address} 22m- An IPV4 socket. - 1m· inet6:port@{hostname|ip-address} 22m- An IPV6 socket. + The socket should be in "proto:address" format: + o {unix|local}:/path/to/file - A named pipe. + o inet:port@{hostname|ip-address} - An IPV4 socket. + o inet6:port@{hostname|ip-address} - An IPV6 socket. - 1m-S 4m22msocket0m - Communication socket between 1mamavisd-milter 22mand 1mamavisd-new0m + -S socket + Communication socket between amavisd-milter and amavisd-new (default /var/amavis/amavisd.sock). The protocol spoken over - this socket is 1mAM.PDP 22m(AMavis Policy Delegation Protocol). It + this socket is AM.PDP (AMavis Policy Delegation Protocol). It must agree with the $unix_socketname entry in amavisd.conf. - The 4msocket24m should be in "proto:address" format: - 1m· {unix|local}:/path/to/file 22m- A named pipe. + The socket should be in "proto:address" format: + o {unix|local}:/path/to/file - A named pipe. - 1m-t 4m22mtimeout0m - 1msendmail 22mconnection timeout in seconds (default 600 = 10 min‐ - utes). It must agree with the INPUT_MAIL_FILTER entry in send‐ - mail.mc and must be greater than or equal to the 1mamavisd-new 22mcon‐ + -t timeout + sendmail connection timeout in seconds (default 600 = 10 min- + utes). It must agree with the INPUT_MAIL_FILTER entry in send- + mail.mc and must be greater than or equal to the amavisd-new con- nection timeout. When you use other milters (especially time- consuming), the timeout must be sufficient to process message in all milters. - 1m-T 4m22mtimeout0m - 1mamavisd-new 22mconnection timeout in seconds (default 600 = 10 min‐ + -T timeout + amavisd-new connection timeout in seconds (default 600 = 10 min- utes). This timeout must be sufficient for message processing in - 1mamavisd-new22m. It's usually a good idea to adjust them to the same - value as 1msendmail 22mconnection timeout. + amavisd-new. It's usually a good idea to adjust them to the same + value as sendmail connection timeout. - 1m-v 22mReport the version number and exit. + -v Report the version number and exit. - 1m-w 4m22mdirectory0m + -w directory Set working directory (default /var/amavis). - 1mLimited support for sendmail 8.120m - 1m· smfi_addheader22m() is used instead of 1msmfi_insheader22m() for insheader - and addheader AM.PDP responses. This works well with 1mamavisd-new0m + Limited support for sendmail 8.12 + o smfi_addheader() is used instead of smfi_insheader() for insheader + and addheader AM.PDP responses. This works well with amavisd-new 2.4.3 or newer. - 1m· smfi_progress22m() isn't called when 1mamavisd-milter 22mwait for 1mamavisd-new0m + o smfi_progress() isn't called when amavisd-milter wait for amavisd-new communication socket. - 1m· 22mAM.PDP response quarantine isn't implemented. + o AM.PDP response quarantine isn't implemented. -1mFILES0m - 4m/var/amavis/amavisd-milter.pid0m +FILES + /var/amavis/amavisd-milter.pid The default process-id file. - 4m/var/amavis/amavisd-milter.sock0m - The default 1msendmail 22mcommunication socket. + /var/amavis/amavisd-milter.sock + The default sendmail communication socket. - 4m/var/amavis/amavisd.sock0m - Th default 1mamavisd-new 22mcommunication socket. + /var/amavis/amavisd.sock + Th default amavisd-new communication socket. - 4m/var/amavis0m + /var/amavis The default working directory. -1mPOLICY BANKS0m - If the option 1m-B 22mis enabled, 1mamavisd-milter 22muses the value of the milter - macro 1m{daemon_name} 22mas a name of the 1mamavisd-new 22mpolicy bank. Usualy this +POLICY BANKS + If the option -B is enabled, amavisd-milter uses the value of the milter + macro {daemon_name} as a name of the amavisd-new policy bank. Usualy this milter macro is set to name of the MTA. - When remote client is authenticated, 1mamavisd-milter 22muses this information - as a name of the 1mamavisd-new 22mpolicy banks: + When remote client is authenticated, amavisd-milter uses this information + as a name of the amavisd-new policy banks: - 1mSMTP_AUTH0m + SMTP_AUTH Indicate that the remote client is authenticated. - 1mSMTP_AUTH_<MECH>0m + SMTP_AUTH_<MECH> Remote client authentication mechanism. - 1mSMTP_AUTH_<MECH>_<BITS>0m + SMTP_AUTH_<MECH>_<BITS> The number of bits used for the key of the symmetric cipher when authentication mechanism use it. -1mEXAMPLES0m - 1mConfiguring amavisd-new0m +EXAMPLES + Configuring amavisd-new In amavisd.conf file change protocol and socket settings to: $protocol = "AM.PDP"; # Use AM.PDP protocol @@ -163,7 +163,7 @@ Then (re)start amavisd daemon. - 1mConfiguring sendmail0m + Configuring sendmail To the sendmail.mc file add the following entries: define(`confMILTER_MACROS_ENVFROM', @@ -175,8 +175,8 @@ Then rebuild your sendmail.cf file, install it (usually to /etc/mail/sendmail.cf) and (re)start sendmail daemon. - 1mRunning amavisd-milter0m - This example assume that 1mamavisd-new 22mis running as user 1mamavis22m. It must + Running amavisd-milter + This example assume that amavisd-new is running as user amavis. It must agree with the entry $daemon_user in amavisd.conf. First create working directory: @@ -185,21 +185,21 @@ chmod 750 /var/amavis/tmp chown amavis /var/amavis/tmp - Then start 1mamavisd-milter 22mas non-priviledged user amavis: + Then start amavisd-milter as non-priviledged user amavis: - su - amavis -c "1mamavisd-milter -w 4m22m/var/amavis/tmp24m" + su - amavis -c "amavisd-milter -w /var/amavis/tmp" - 1mLimiting maximum concurrent connections to amavisd0m + Limiting maximum concurrent connections to amavisd To limit concurrent connections to 4 and fail after 10 minutes (10*60 - secs) of waiting run 1mamavisd-milter 22mwith this options: + secs) of waiting run amavisd-milter with this options: - su - amavis -c "1mamavisd-milter -w 4m22m/var/amavis/tmp24m 1m-m 4m22m424m 1m-M 4m22m60024m" + su - amavis -c "amavisd-milter -w /var/amavis/tmp -m 4 -M 600" - 1mTroubleshooting0m - For troubleshooting run 1mamavisd-milter 22mon the foreground and set debug + Troubleshooting + For troubleshooting run amavisd-milter on the foreground and set debug level to appropriate level: - su - amavis -c "1mamavisd-milter -w 4m22m/var/amavis/tmp24m 1m-f -d 4m22mlevel24m" + su - amavis -c "amavisd-milter -w /var/amavis/tmp -f -d level" where debug levels are: @@ -207,21 +207,21 @@ 2 Main states in message processing. - 3 All 1mamavisd-milter 22mdebug messages. + 3 All amavisd-milter debug messages. 4-9 Milter communication debugging (smfi_setdbg 1-6). -1mSEE ALSO0m +SEE ALSO http://amavisd-milter.sourceforge.net http://www.ijs.si/software/amavisd/ http://www.milter.org/developers http://www.sendmail.org -1mAUTHORS0m +AUTHORS This manual page was written by Petr Rehor <[email protected]> and is based on Jerzy Sakol <[email protected]> initial work. -1mBUGS0m +BUGS A community mailing lists are available at: http://sourceforge.net/mail/?group_id=138169 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/aclocal/ar-lib new/amavisd-milter-1.6.1/aclocal/ar-lib --- old/amavisd-milter-1.6.0/aclocal/ar-lib 2013-05-19 23:09:56.000000000 +0200 +++ new/amavisd-milter-1.6.1/aclocal/ar-lib 2015-05-24 22:51:22.000000000 +0200 @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2012 Free Software Foundation, Inc. +# Copyright (C) 2010-2014 Free Software Foundation, Inc. # Written by Peter Rosin <[email protected]>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/aclocal/compile new/amavisd-milter-1.6.1/aclocal/compile --- old/amavisd-milter-1.6.0/aclocal/compile 2013-05-19 23:09:56.000000000 +0200 +++ new/amavisd-milter-1.6.1/aclocal/compile 2015-05-24 22:51:22.000000000 +0200 @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/aclocal/missing new/amavisd-milter-1.6.1/aclocal/missing --- old/amavisd-milter-1.6.0/aclocal/missing 2013-05-19 23:09:56.000000000 +0200 +++ new/amavisd-milter-1.6.1/aclocal/missing 2015-05-24 22:51:22.000000000 +0200 @@ -1,10 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-01-06.18; # UTC +scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2012 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <[email protected]>, 1996. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,61 +29,33 @@ exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, 'missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file 'aclocal.m4' - autoconf touch file 'configure' - autoheader touch file 'config.h.in' - autom4te touch the output file, or create a stub one - automake touch all 'Makefile.in' files - bison create 'y.tab.[ch]', if possible, from existing .[ch] - flex create 'lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create 'lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create 'y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. @@ -98,228 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown '$1' option" + echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running '$TOOL --version' or '$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'acinclude.m4' or '${configure_ac}'. You might want - to install the Automake and Perl packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified '${configure_ac}'. You might want to install the - Autoconf and GNU m4 packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'acconfig.h' or '${configure_ac}'. You might want - to install the Autoconf and GNU m4 packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - automake*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. - You might want to install the Automake and Perl packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: '$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get '$1' as part of Autoconf from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: '$1' $msg. You should only need it if - you modified a '.y' file. You may need the Bison package - in order for those modifications to take effect. You can get - Bison from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a '.l' file. You may need the Flex package - in order for those modifications to take effect. You can get - Flex from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - Help2man package in order for those modifications to take - effect. You can get Help2man from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a '.texi' or '.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy 'make' (AIX, - DU, IRIX). You might want to install the Texinfo package or - the GNU make package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: '$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the 'README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing '$1' program." - exit 1 - ;; -esac +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/amavisd-milter/mlfi.c new/amavisd-milter-1.6.1/amavisd-milter/mlfi.c --- old/amavisd-milter-1.6.0/amavisd-milter/mlfi.c 2013-04-22 02:36:12.000000000 +0200 +++ new/amavisd-milter-1.6.1/amavisd-milter/mlfi.c 2015-05-24 20:59:19.000000000 +0200 @@ -25,7 +25,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: mlfi.c,v 1.60 2013/04/22 00:36:12 reho Exp $ + * $Id: mlfi.c,v 1.61 2015/05/24 18:59:19 reho Exp $ */ #include "amavisd-milter.h" @@ -695,14 +695,14 @@ l = 0; *mlfi->mlfi_amabuf = '\0'; if ((policybank_from_daemon_name == 1) && (mlfi->mlfi_daemon_name != NULL)) { - l += snprintfcat(0, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, + l += snprintfcat(l, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, "%s", mlfi->mlfi_daemon_name); } if (auth_type != NULL) { if (l > 0) { - l += snprintfcat(0, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, ","); + l += snprintfcat(l, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, ","); } - l += snprintfcat(0, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, + l += snprintfcat(l, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, "SMTP_AUTH,SMTP_AUTH_%s", auth_type); if (auth_ssf != NULL && *auth_ssf != '\0') { l += snprintfcat(l, mlfi->mlfi_amabuf, mlfi->mlfi_amabuf_length, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/amavisd-milter.spec new/amavisd-milter-1.6.1/amavisd-milter.spec --- old/amavisd-milter-1.6.0/amavisd-milter.spec 2013-05-19 23:10:19.000000000 +0200 +++ new/amavisd-milter-1.6.1/amavisd-milter.spec 2015-05-24 22:51:49.000000000 +0200 @@ -1,6 +1,6 @@ Summary: Milter helper for Amavisd-new Name: amavisd-milter -Version: 1.6.0 +Version: 1.6.1 Release: 1 License: Petr Rehor <[email protected]>. All rights reserved. Group: System Environment/Daemons @@ -9,7 +9,7 @@ Packager: Jo Rhett <[email protected]> Vendor: Amavisd-new -Source: http://sourceforge.net/projects/amavisd-milter/files/amavisd-milter/amavisd-milter-1.6.0/amavisd-milter-1.6.0.tar.gz +Source: http://sourceforge.net/projects/amavisd-milter/files/amavisd-milter/amavisd-milter-1.6.1/amavisd-milter-1.6.1.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires: amavisd-new sendmail-milter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/config.h.in new/amavisd-milter-1.6.1/config.h.in --- old/amavisd-milter-1.6.0/config.h.in 2013-05-19 23:09:52.000000000 +0200 +++ new/amavisd-milter-1.6.1/config.h.in 2015-05-24 22:51:17.000000000 +0200 @@ -185,9 +185,6 @@ /* Default location to store state files. */ #undef LOCAL_STATE_DIR -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - /* Name of package */ #undef PACKAGE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/amavisd-milter-1.6.0/configure.ac new/amavisd-milter-1.6.1/configure.ac --- old/amavisd-milter-1.6.0/configure.ac 2013-05-19 23:07:26.000000000 +0200 +++ new/amavisd-milter-1.6.1/configure.ac 2015-05-24 22:50:39.000000000 +0200 @@ -1,6 +1,6 @@ -dnl $Id: configure.ac,v 1.50 2013/05/19 21:07:26 reho Exp $ +dnl $Id: configure.ac,v 1.51 2015/05/24 20:50:39 reho Exp $ -AC_INIT(amavisd-milter, 1.6.0) +AC_INIT(amavisd-milter, 1.6.1) AC_PREREQ(2.62) AC_CONFIG_SRCDIR(aclocal/acinclude.m4) ++++++ amavisd-new-2.11.0.tar.xz -> amavisd-new-2.11.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/RELEASE_NOTES new/amavisd-new-2.11.1/RELEASE_NOTES --- old/amavisd-new-2.11.0/RELEASE_NOTES 2016-04-26 21:21:27.000000000 +0200 +++ new/amavisd-new-2.11.1/RELEASE_NOTES 2018-10-09 14:33:06.000000000 +0200 @@ -1,3 +1,28 @@ +--------------------------------------------------------------------------- + October 9, 2018 +amavisd-new-2.11.1 release notes + +- removed a trailing dot element from @INC, as a workaround for a perl + vulnerability CVE-2016-1238; + +- amavis-services: bumping up syslog level from LOG_NOTICE to LOG_ERR + for a message "PID <pid> went away", and removed redundant newlines + from some log messages; + +- safe_decode() and safe_decode_utf8(): avoid warning messages + "Use of uninitialized value in subroutine entry" + in Encode::MIME::Header when the $check argument is undefined; + +- @sa_userconf_maps has been extended to allow loading of per-recipient + (or per- policy bank, or global) SpamAssassin configuration set from + LDAP. For consistency with SQL a @sa_userconf_maps entry prefixed with + 'ldap:' will load SpamAssassin configuration set using the + load_scoreonly_ldap() method; a patch by Atanas Karashenski; + +- add some Sanesecurity.Foxhole false positives to the default + list @virus_name_to_spam_score_maps; + +- updated some comments; --------------------------------------------------------------------------- April 26, 2016 @@ -14425,7 +14450,7 @@ by Postfix outright; reported by Turgut Kalfaoglu; - use SMTP response code 554 (instead of 550) for rejecting syntactically - invalid header (according to rfc4409 (ex rfc2476)); + invalid header (according to rfc6409 (ex rfc4409, rfc2476)); - add am_id to SMTP response code generated by one_response_for_all() to make it easier for MTA log to be correlated with amavisd-new log; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/amavis-services new/amavisd-new-2.11.1/amavis-services --- old/amavisd-new-2.11.0/amavis-services 2014-05-06 13:57:12.000000000 +0200 +++ new/amavisd-new-2.11.1/amavis-services 2018-10-09 14:40:29.000000000 +0200 @@ -5,7 +5,7 @@ # # Author: Mark Martinec <[email protected]> # -# Copyright (c) 2012-2014, Mark Martinec +# Copyright (c) 2012-2018, Mark Martinec # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -47,7 +47,7 @@ use warnings FATAL => qw(utf8 void); no warnings 'uninitialized'; -use vars qw($VERSION); $VERSION = 2.008002; +use vars qw($VERSION); $VERSION = 2.011002; use Errno qw(ESRCH ENOENT); use POSIX qw(strftime); @@ -60,7 +60,7 @@ use vars qw($inner_sock_specs $outer_sock_specs $snmp_sock_specs); BEGIN { $myproduct_name = 'amavis-services'; - $myversion_id = '2.9.0'; $myversion_date = '20140506'; + $myversion_id = '2.11.2'; $myversion_date = '20170602'; $myversion = "$myproduct_name-$myversion_id ($myversion_date)"; } @@ -199,7 +199,8 @@ : $level >= 1 ? LOG_INFO : $level >= 0 ? LOG_NOTICE : $level >= -1 ? LOG_WARNING - : LOG_ERR; + : $level >= -2 ? LOG_ERR + : LOG_CRIT; syslog($prio, "%s", $errmsg); } } @@ -259,32 +260,32 @@ my $n; # number of checked processes (0 or 1) if (!$overdue && $now - $p->{tick} < 10) { $n = 1; # recently heard from it, assume it is still there - do_log(2, "PID %d skipped, recently heared from\n", $pid); + do_log(2, "PID %d skipped, recently heared from", $pid); } elsif (!$overdue && $idling && $p->{last_checked_timestamp} && $now - $p->{last_checked_timestamp} < 20) { $n = 1; # recently checked, idle, assume it is still there - do_log(2, "PID %d skipped, recently checked\n", $pid); + do_log(2, "PID %d skipped, recently checked", $pid); } elsif (!$overdue && $p->{last_checked_timestamp} && $now - $p->{last_checked_timestamp} < 10) { $n = 1; # recently checked, busy, assume it is still there - do_log(2, "PID %d skipped, recently checked\n", $pid); + do_log(2, "PID %d skipped, recently checked", $pid); } else { - do_log(2, "PID %d checking\n", $pid); + do_log(2, "PID %d checking", $pid); $p->{last_checked_timestamp} = $now; $n = kill(0,$pid); # test if the process is still there if ($n == 0) { # ESRCH means there is no such process if ($! != ESRCH) { - do_log(-1, "Can't check the process %s: %s", $pid,$!); + do_log(-1, "Can't check the process %s: %s", $pid, $!); } elsif (defined $p->{sig_sent}) { $cnt_terminated++; - do_log(2, "PID %d sucessfully terminated by SIG%s, %s\n", + do_log(2, "PID %d sucessfully terminated by SIG%s, %s", $pid, $p->{sig_sent}, $p->{task_id} || $p->{state}); } else { $cnt_gone++; - do_log(0, "PID %d went away, %s\n", - $pid, $p->{task_id} || $p->{state} ); + do_log(-2, "PID %d went away, %s", + $pid, $p->{task_id} || $p->{state} ); } delete $process_states_ref->{$pid}; defined zmq_sendstr($inner_sock, @@ -295,7 +296,7 @@ if ($n == 0) { # already dealt with } elsif (!$overdue) { # life is good - do_log(2, "PID %d: %s\n", $pid, $p->{task_id} || $p->{state} ); + do_log(2, "PID %d: %s", $pid, $p->{task_id} || $p->{state} ); } elsif (!$p->{sig_sent} || $p->{sig_sent_timestamp} + $p->{sig_sent_retry_in} >= $now) { # overdue, terminate or kill, or retry the killing @@ -308,7 +309,7 @@ } $p->{sig_sent_timestamp} = $now; if (kill($p->{sig_sent},$pid)) { - do_log(2, "PID %d SIG%s, %s\n", + do_log(2, "PID %d SIG%s, %s", $pid, $p->{sig_sent}, $p->{task_id} || $p->{state}); } elsif ($! == ESRCH) { # already gone by now, no fuss @@ -316,7 +317,7 @@ warn "Can't $p->{sig_sent} the [$pid]: $!"; } if ($p->{sig_sent_retry_in} > 600) { - do_log(2, "Giving up on PID %d, %s\n", + do_log(2, "Giving up on PID %d, %s", $pid, $p->{task_id} || $p->{state}); delete $process_states_ref->{$pid}; defined zmq_sendstr($inner_sock, @@ -475,11 +476,11 @@ # within the same multi-part message my $msg = 'am.proc.busy ' . join(' ',@proc_busy_list); -do_log(5, "childproc-minder: sending %s", $msg); + # do_log(5, "childproc-minder: sending %s", $msg); defined zmq_sendstr($inner_sock, $msg) or die "zmq_sendstr failed: $!"; $msg = 'am.proc.idle ' . join(' ',@proc_idle_list); -do_log(5, "childproc-minder: sending %s", $msg); + # do_log(5, "childproc-minder: sending %s", $msg); defined zmq_sendstr($inner_sock, $msg) or die "zmq_sendstr failed: $!"; @@ -663,7 +664,7 @@ # # Amavisd child processes are dynamic and connect to the inner socket, # supplying information. Similarly the childproc_minder process occasionally -# feeds its supplementaty information updates to this inner socket. +# feeds its supplementary information updates to this inner socket. # # Dynamic clients like amavisd-nanny, amavisd-snmp-subagent, amavisd-agent, # and a childproc_minder process connect to the outer socket to receive @@ -752,6 +753,7 @@ # if ($debug && $zmsg) { # my $str = zmq_msg_data($zmsg); # copy and return as a perl scalar # printf("%s %s\n", $more?'M':' ', $str) if 1 || $str =~ /^am\.st /; + # do_log(5, "msg-forwarder: %s %s", $more?'M':' ', $str); # } # the zmq_sendmsg nullifies a message in a $zmsg object zmq_sendmsg($outer_sock, $zmsg, $more ? ZMQ_SNDMORE : 0) != -1 @@ -778,9 +780,9 @@ my $normal_termination = 0; $SIG{'__DIE__' } = - sub { if (!$^S) { my($m) = @_; chomp($m); do_log(-1,"_DIE: %s", $m) } }; + sub { if (!$^S) { my($m) = @_; chomp($m); do_log(-2, "_DIE: %s", $m) } }; $SIG{'__WARN__'} = - sub { my($m) = @_; chomp($m); do_log(0,"_WARN: %s",$m) }; + sub { my($m) = @_; chomp($m); do_log(0, "_WARN: %s", $m) }; my $task_name; @@ -821,8 +823,8 @@ $syslog_open = 1; } -do_log(0, "%s task '%s' [%d] started. %s\n", - $myversion, $task_name, $$, zmq_version()); +do_log(0, "%s task '%s' [%d] started. %s, perl %s", + $myversion, $task_name, $$, zmq_version(), $]); eval { # catch TERM and INT signals for a controlled shutdown my $h = sub { $interrupted = $_[0]; die "\n" }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/amavisd new/amavisd-new-2.11.1/amavisd --- old/amavisd-new-2.11.0/amavisd 2016-04-26 21:24:33.000000000 +0200 +++ new/amavisd-new-2.11.1/amavisd 2018-10-09 14:41:10.000000000 +0200 @@ -14,7 +14,7 @@ # on amavisd-snapshot-20020300). # # All work since amavisd-snapshot-20020300: -# Copyright (C) 2002-2016 Mark Martinec, +# Copyright (C) 2002-2018 Mark Martinec, # All Rights Reserved. # with contributions from the amavis-user mailing list and individuals, # as acknowledged in the release notes. @@ -132,6 +132,7 @@ # Amavis::Tools #------------------------------------------------------------------------------ +BEGIN { pop @INC if $INC[-1] eq '.' } # CVE-2016-1238 (perl) use sigtrap qw(stack-trace BUS SEGV EMT FPE ILL SYS TRAP); # ABRT use strict; @@ -678,7 +679,7 @@ $myprogram_name = $0; # typically 'amavisd' local $1; $myprogram_name =~ s{([^/]*)\z}{$1}s; $myproduct_name = 'amavisd-new'; - $myversion_id = '2.11.0'; $myversion_date = '20160426'; + $myversion_id = '2.11.1'; $myversion_date = '20181009'; $myversion = "$myproduct_name-$myversion_id ($myversion_date)"; $myversion_id_numeric = # x.yyyzzz, allows numerical compare, like Perl $] @@ -1349,7 +1350,7 @@ $signed_header_fields{lc($_)} = 2 for qw(From Date Subject Content-Type); # provide names for content categories - to be used only for logging, - # SNMP counter names and display purposes + # SNMP counter names, and display purposes %ccat_display_names = ( CC_CATCHALL, 'CatchAll', # last resort, should not normally appear CC_CLEAN, 'Clean', @@ -1378,7 +1379,7 @@ ); # provide names for content categories - to be used only for logging, - # SNMP counter names and display purposes, similar to %ccat_display_names + # SNMP counter names, and display purposes, similar to %ccat_display_names # but only major contents category names are listed %ccat_display_names_major = ( CC_CATCHALL, 'CatchAll', # last resort, should not normally appear @@ -2108,6 +2109,9 @@ [ qr'^(Email|HTML)\.Phishing\.(?!.*Sanesecurity)' => 0.1 ], [ qr'^Sanesecurity\.(Malware|Rogue|Trojan)\.' => undef ],# keep as infected [ qr'^Sanesecurity\.Foxhole\.Zip_exe' => 0.1 ], # F.P. + [ qr'^Sanesecurity\.Foxhole\.Zip_bat' => 0.1 ], # F.P. + [ qr'^Sanesecurity\.Foxhole\.Mail_gz' => 0.1 ], # F.P. + [ qr'^Sanesecurity\.Foxhole\.Mail_ace' => 0.1 ], # F.P. [ qr'^Sanesecurity\.Foxhole\.' => undef ],# keep as infected [ qr'^Sanesecurity\.' => 0.1 ], [ qr'^Sanesecurity_PhishBar_' => 0 ], @@ -2242,8 +2246,8 @@ $db_home = "$MYHOME/db" if !defined $db_home; @zmq_sockets = ( "ipc://$MYHOME/amavisd-zmq.sock" ) if !@zmq_sockets; $pid_file = "$MYHOME/amavisd.pid" if !defined $pid_file && $daemonize; -# just keep $lock_file undefined by default, a temp file (POSIX::tmpnam) will -# be provided by Net::Server for 'flock' serialization on a socket accept() +# just keep $lock_file undefined by default, a temp file (File::Temp::tmpnam) +# will be provided by Net::Server for 'flock' serialization on a socket accept() # $lock_file = "$MYHOME/amavisd.lock" if !defined $lock_file; local($1,$2); $X_HEADER_LINE = $myproduct_name . ' at ' . @@ -3161,26 +3165,28 @@ my($str,$check) = @_; return undef if !defined $str; # must return undef even in a list context! if ($enc_taintsafe || !tainted($str)) { - return utf8::is_utf8($str) ? $str : $enc_utf8->decode($str,$check); + return utf8::is_utf8($str) ? $str : $enc_utf8->decode($str, $check||0); } else { # Work around a taint laundering bug in Encode [rt.cpan.org #84879]. # Propagate taintedness across taint-related bugs in module Encode. untaint_inplace($str); return $enc_tainted . - (utf8::is_utf8($str) ? $str : $enc_utf8->decode($str,$check)); + (utf8::is_utf8($str) ? $str : $enc_utf8->decode($str, $check||0)); } } sub safe_decode($$;$) { -# my($encoding,$str,$check) = @_; - my $encoding = shift; - return undef if !defined $_[0]; # must return undef even in a list context! + my($encoding,$str,$check) = @_; + return undef if !defined $str; # must return undef even in a list context! my $enc = Encode::find_encoding($encoding); - return $_[0] if !$enc; - return $enc->decode(@_) if $enc_taintsafe || !tainted($_[0]); + return $str if !$enc; + # if the $check argument in a call to Encode::decode() is present it must be + # defined to avoid warning "Use of uninitialized value in subroutine entry" + return $enc->decode($str, $check||0) if $enc_taintsafe || !tainted($str); # Work around a taint laundering bug in Encode [rt.cpan.org #84879]. # Propagate taintedness across taint-related bugs in module Encode. - $enc_tainted . $enc->decode(untaint($_[0]), $_[1]); + untaint_inplace($str); + $enc_tainted . $enc->decode($str, $check||0); } # Handle Internationalized Domain Names according to IDNA: RFC 5890, RFC 5891. @@ -12018,7 +12024,7 @@ # - sending notifications (to admin and recips) # * custom hook: before_send() - may send other notif, quarantine, modify mail # - forwarding (unless blocked) -# * custom hook: after_send() - may suppress DSN, send reports, quarantine +# * custom hook: after_send() - may suppress DSN, may send reports, quarantine # - sending delivery status notification (if needed) # - issue main log entry, manage statistics (timing, counters, nanny) # * custom hook: mail_done() - may inspect results @@ -19670,14 +19676,16 @@ $msg .= ", instance=$instance_name" if $instance_name ne ''; $msg .= ", nl=".sprintf('\\x%02X',ord("\n")) if "\n" ne "\012"; $msg .= ", Unicode aware"; # ensured by 'require 5.008' - for (qw(PERLIO LC_ALL LC_TYPE LC_CTYPE LANG)) - { $msg .= sprintf(', %s="%s"', $_,$ENV{$_}) if $ENV{$_} ne '' } + for (qw(PERLIO LC_ALL LANG LC_CTYPE LC_TIME LC_MESSAGES)) { + $msg .= sprintf(', %s="%s"', + $_, $ENV{$_}) if defined $ENV{$_} && $ENV{$_} ne ''; + } do_log(0,"starting.%s %s at %s %s%s", !$warm_restart?'':' (warm)', $0, idn_to_utf8(c('myhostname')), $myversion, $msg); } # report version of Perl and process UID/GID -do_log(1, "perl=%s, user=%s, EUID: %s (%s); group=%s, EGID: %s (%s)", +do_log(0, "perl=%s, user=%s, EUID: %s (%s); group=%s, EGID: %s (%s)", $], $desired_user, $>, $<, $desired_group, $), $(); if ($warm_restart) { # a semi-documented Net::Server mechanism to let a restarted process @@ -19716,7 +19724,7 @@ # matches global unicast addresses # (i.e. valid addresses except: local, private or multicast addresses) -# RFC 5735 (ex RFC 3330), RFC 3513 (IPv6), RFC 4193 (ULA), RFC 6598 (CGN) +# RFC 6890 (ex RFC 5735/3330), RFC 3513 (IPv6), RFC 4193 (ULA), RFC 6598 (CGN) @public_networks_maps = ( Amavis::Lookup::Label->new('public_nets'), Amavis::Lookup::IP->new(qw( @@ -30807,6 +30815,9 @@ if ($uconf =~ /^sql:/i) { $uconf = $uname eq $sa_default_username ? '' : 'sql:'.$uname; } + if ($uconf =~ /^ldap:/i) { + $uconf = $uname eq $sa_default_username ? '' : 'ldap:'.$uname; + } if ($sa_version_num < 3.003000 && $uconf ne '') { $uconf = ''; $uconf_unsupported = 1; } @@ -30814,6 +30825,8 @@ # ok, no special config required, just using a default } elsif ($uconf =~ /^sql:/i) { # assume data is in SQL, possibly an empty set + } elsif ($uconf =~ /^ldap:/i) { + # assume data is in LDAP, possibly an empty set } else { $uconf = "$MYHOME/$uconf" if $uconf !~ m{^/}; if ($uconf_filename_available{$uconf}) { @@ -30935,6 +30948,7 @@ do_log(2,'SA user config: instance chosen (%s), %s', $sa_instance->{instance_name}, $fit_descr); } + my $curr_conf = $sa_instance->{loaded_user_config}; my $curr_user = $sa_instance->{loaded_user_name}; my $spamassassin_obj = $sa_instance->{spamassassin_obj}; @@ -30979,6 +30993,11 @@ or die "panic: loading SA config mismatch: $uname <-> $uconf"; do_log(5,"loading SA user config from SQL %s", $uname); $spamassassin_obj->load_scoreonly_sql($uname); + } elsif ($uconf =~ /^ldap:/) { + $uconf eq 'ldap:'.$uname + or die "panic: loading SA config mismatch: $uname <-> $uconf"; + do_log(5,"loading SA user config from LDAP %s", $uname); + $spamassassin_obj->load_scoreonly_ldap($uname); } else { do_log(5,"loading SA user config file %s", $uconf); $spamassassin_obj->read_scoreonly_config($uconf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/amavisd-new-courier.patch new/amavisd-new-2.11.1/amavisd-new-courier.patch --- old/amavisd-new-2.11.0/amavisd-new-courier.patch 2016-04-26 21:23:20.000000000 +0200 +++ new/amavisd-new-2.11.1/amavisd-new-courier.patch 2018-10-09 14:38:30.000000000 +0200 @@ -1,5 +1,5 @@ ---- amavisd.ori 2016-04-26 21:22:13.525445000 +0200 -+++ amavisd 2016-04-26 21:22:48.446878000 +0200 +--- amavisd.ori 2017-12-27 16:33:03.000000000 +0100 ++++ amavisd 2018-10-09 14:38:18.705760000 +0200 @@ -108,5 +108,5 @@ # Amavis::In::AMPDP # Amavis::In::SMTP @@ -7,14 +7,14 @@ +# Amavis::In::Courier # Amavis::Out::SMTP::Protocol # Amavis::Out::SMTP::Session -@@ -231,5 +231,5 @@ +@@ -232,5 +232,5 @@ fetch_modules('REQUIRED BASIC MODULES', 1, qw( Exporter POSIX Fcntl Socket Errno Carp Time::HiRes - IO::Handle IO::File IO::Socket IO::Socket::UNIX + IO::Handle IO::File IO::Socket IO::Socket::UNIX IO::Select IO::Stringy Digest::MD5 Unix::Syslog File::Basename Compress::Zlib MIME::Base64 MIME::QuotedPrint MIME::Words -@@ -13098,4 +13098,18 @@ +@@ -13104,4 +13104,18 @@ ### Net::Server hook +### This hook takes place immediately after the "->run()" method is called. @@ -33,14 +33,14 @@ +### Net::Server hook ### Occurs in the parent (master) process after (possibly) opening a log file, ### creating pid file, reopening STDIN/STDOUT to /dev/null and daemonizing; -@@ -13110,5 +13124,5 @@ +@@ -13116,5 +13130,5 @@ sd_notify(0, "MAINPID=$$","STATUS=Daemonized, preparing to bind sockets."); } -# umask(0007); # affects protection of Unix sockets created by Net::Server + umask(0007); # affects protection of Unix sockets created by Net::Server } -@@ -13129,9 +13143,18 @@ +@@ -13135,9 +13149,18 @@ ### Net::Server hook ### Occurs in the parent (master) process after binding to sockets, -### but before chrooting and dropping privileges @@ -61,7 +61,7 @@ + } sd_notify(0, "STATUS=Sockets bound, checking user and group."); } -@@ -13191,4 +13214,15 @@ +@@ -13197,4 +13220,15 @@ } $spamcontrol_obj->init_pre_fork if $spamcontrol_obj; + if ($courierfilter_shutdown) { @@ -77,7 +77,7 @@ + } my(@modules_extra) = grep(!exists $modules_basic{$_}, keys %INC); if (@modules_extra) { -@@ -13683,5 +13717,7 @@ +@@ -13689,5 +13723,7 @@ $ampdp_in_obj->process_policy_request($sock, $conn, \&check_mail, 0); } elsif ($suggested_protocol eq 'COURIER') { - die "unavailable support for protocol: $suggested_protocol"; @@ -86,7 +86,7 @@ + $courier_in_obj->process_courier_request($sock, $conn, \&check_mail); } elsif ($suggested_protocol eq 'QMQPqq') { die "unavailable support for protocol: $suggested_protocol"; -@@ -13792,4 +13828,24 @@ +@@ -13798,4 +13834,24 @@ } +### Net::Server hook @@ -111,7 +111,7 @@ + ### Child is about to be terminated ### user customizable Net::Server hook -@@ -19017,4 +19073,9 @@ +@@ -19023,4 +19079,9 @@ } elsif (@argv > 0 && $cmd !~ /^(:?showkeys?|testkeys?|genrsa|convert_keysfile)/xs) { +# courierfilter shutdown needs can_read_hook, added in Net::Server 0.90 @@ -121,14 +121,14 @@ + die sprintf("%s:\n Only one command line parameter allowed: %s\n\n%s\n", $myversion, join(' ',@argv), usage()); -@@ -19796,4 +19857,6 @@ +@@ -19804,4 +19865,6 @@ host => $bind_to[0], # default bind, redundant, merged to @listen_sockets listen => $listen_queue_size, # undef for a default + # need to set multi_port for can_read_hook + multi_port => $courierfilter_shutdown ? 1 : undef, max_servers => $max_servers, # number of pre-forked children !defined($min_servers) ? () -@@ -23494,5 +23557,424 @@ +@@ -23502,5 +23565,424 @@ # use warnings 'extra'; no warnings 'experimental::re_strict'; use re 'strict'; -BEGIN { die "Code not available for module Amavis::In::Courier" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/amavisd-new-qmqpqq.patch new/amavisd-new-2.11.1/amavisd-new-qmqpqq.patch --- old/amavisd-new-2.11.0/amavisd-new-qmqpqq.patch 2016-04-26 21:24:20.000000000 +0200 +++ new/amavisd-new-2.11.1/amavisd-new-qmqpqq.patch 2018-10-09 14:37:36.000000000 +0200 @@ -1,36 +1,36 @@ ---- amavisd.ori 2016-04-26 21:22:13.525445000 +0200 -+++ amavisd 2016-04-26 21:23:36.586286000 +0200 +--- amavisd.ori 2017-12-27 16:33:03.000000000 +0100 ++++ amavisd 2018-10-09 14:36:42.767443000 +0200 @@ -109,4 +109,5 @@ # Amavis::In::SMTP #( Amavis::In::Courier ) +# Amavis::In::QMQPqq # Amavis::Out::SMTP::Protocol # Amavis::Out::SMTP::Session -@@ -5345,4 +5346,5 @@ +@@ -5351,4 +5352,5 @@ # RFC 3848, RFC 6531 # http://www.iana.org/assignments/mail-parameters/mail-parameters.xhtml + # must not use proto name QMQPqq in 'with' $s .= "\n with $smtp_proto" if $smtp_proto =~ /^ (?: SMTP | (?: ES|L|UTF8S|UTF8L) MTP S? A? ) \z/xsi; -@@ -12107,4 +12109,5 @@ +@@ -12113,4 +12115,5 @@ $extra_code_sql_lookup $extra_code_ldap $extra_code_in_ampdp $extra_code_in_smtp $extra_code_in_courier + $extra_code_in_qmqpqq $extra_code_out_smtp $extra_code_out_pipe $extra_code_out_bsmtp $extra_code_out_local $extra_code_p0f -@@ -12134,4 +12137,5 @@ +@@ -12140,4 +12143,5 @@ # Amavis::In::AMPDP, Amavis::In::SMTP and In::Courier objects use vars qw($ampdp_in_obj $smtp_in_obj $courier_in_obj); +use vars qw($qmqpqq_in_obj); # Amavis::In::QMQPqq object use vars qw($sql_dataset_conn_lookups); # Amavis::Out::SQL::Connection object -@@ -12870,4 +12874,5 @@ +@@ -12876,4 +12880,5 @@ my(@msg); my $euid = $>; # effective UID + do_log(0,"QMQPqq-in proto code %s loaded", $extra_code_in_qmqpqq ?'':" NOT"); $> = 0; # try to become root POSIX::setuid(0) if $> != 0; # and try some more -@@ -13685,5 +13690,9 @@ +@@ -13691,5 +13696,9 @@ die "unavailable support for protocol: $suggested_protocol"; } elsif ($suggested_protocol eq 'QMQPqq') { - die "unavailable support for protocol: $suggested_protocol"; @@ -41,19 +41,19 @@ + $qmqpqq_in_obj->process_qmqpqq_request($sock,$conn,\&check_mail); } elsif ($suggested_protocol eq 'TCP-LOOKUP') { #postfix maps, experimental process_tcp_lookup_request($sock, $conn); -@@ -13809,4 +13818,5 @@ +@@ -13815,4 +13824,5 @@ do_log_safe(5,"child_finish_hook: invoking DESTROY methods"); undef $smtp_in_obj; undef $ampdp_in_obj; undef $courier_in_obj; + undef $qmqpqq_in_obj; undef $sql_storage; undef $sql_wblist; undef $sql_lookups; undef $sql_dataset_conn_lookups; undef $sql_dataset_conn_storage; -@@ -18900,4 +18910,5 @@ +@@ -18906,4 +18916,5 @@ $extra_code_sql_lookup, $extra_code_ldap, $extra_code_in_ampdp, $extra_code_in_smtp, $extra_code_in_courier, + $extra_code_in_qmqpqq, $extra_code_out_smtp, $extra_code_out_pipe, $extra_code_out_bsmtp, $extra_code_out_local, -@@ -19251,5 +19262,11 @@ +@@ -19257,5 +19268,11 @@ undef $extra_code_in_courier; } - if ($needed_protocols_in{'QMQPqq'}) { die "In::QMQPqq code not available" } @@ -66,7 +66,7 @@ + } } -@@ -23500,4 +23517,276 @@ +@@ -23508,4 +23525,276 @@ __DATA__ # +package Amavis::In::QMQPqq; @@ -343,8 +343,8 @@ +# package Amavis::Out::SMTP::Protocol; use strict; ---- amavisd.conf.ori 2016-04-26 21:22:22.992355000 +0200 -+++ amavisd.conf 2016-04-26 21:23:36.586961000 +0200 +--- amavisd.conf.ori 2017-12-27 19:25:28.006677000 +0100 ++++ amavisd.conf 2018-10-09 14:36:42.768450000 +0200 @@ -56,6 +56,6 @@ # option(s) -p overrides $inet_socket_port and $unix_socketname diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/amavisd-new-2.11.0/amavisd.conf new/amavisd-new-2.11.1/amavisd.conf --- old/amavisd-new-2.11.0/amavisd.conf 2016-04-26 21:24:26.000000000 +0200 +++ new/amavisd-new-2.11.1/amavisd.conf 2017-12-27 19:25:28.000000000 +0100 @@ -94,7 +94,7 @@ $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.2; # add 'spam detected' headers at that level $sa_kill_level_deflt = 6.9; # triggers spam evasive actions (e.g. blocks mail) -$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent +$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is suppressed $sa_crediblefrom_dsn_cutoff_level = 18; # likewise, but for a likely valid From # $sa_quarantine_cutoff_level = 25; # spam level beyond which quarantine is off $penpals_bonus_score = 8; # (no effect without a @storage_sql_dsn database)
