Hello community, here is the log from the commit of package postfix for openSUSE:Factory checked in at 2020-03-16 10:16:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postfix (Old) and /work/SRC/openSUSE:Factory/.postfix.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postfix" Mon Mar 16 10:16:31 2020 rev:181 rq:784682 version:3.4.10 Changes: -------- --- /work/SRC/openSUSE:Factory/postfix/postfix.changes 2020-02-09 21:01:54.371336145 +0100 +++ /work/SRC/openSUSE:Factory/.postfix.new.3160/postfix.changes 2020-03-16 10:17:17.315561581 +0100 @@ -1,0 +2,10 @@ +Fri Mar 13 14:29:32 UTC 2020 - Michael Ströder <[email protected]> + +- Update to 3.4.10: + * Bug (introduced: Postfix 2.3): Postfix Milter client state + was not properly reset after one Milter in a multi-Milter + configuration failed during MAIL FROM, resulting in a Postfix + Milter client panic during the next MAIL FROM command in the + same SMTP session. + +------------------------------------------------------------------- Old: ---- postfix-3.4.9.tar.gz New: ---- postfix-3.4.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postfix.spec ++++++ --- /var/tmp/diff_new_pack.a0ZZyj/_old 2020-03-16 10:17:18.867562213 +0100 +++ /var/tmp/diff_new_pack.a0ZZyj/_new 2020-03-16 10:17:18.867562213 +0100 @@ -53,7 +53,7 @@ %bcond_with libnsl %endif Name: postfix -Version: 3.4.9 +Version: 3.4.10 Release: 0 Summary: A fast, secure, and flexible mailer License: IPL-1.0 OR EPL-2.0 ++++++ postfix-3.4.9.tar.gz -> postfix-3.4.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.4.9/HISTORY new/postfix-3.4.10/HISTORY --- old/postfix-3.4.9/HISTORY 2020-02-02 18:51:46.000000000 +0100 +++ new/postfix-3.4.10/HISTORY 2020-03-12 15:58:26.000000000 +0100 @@ -24339,3 +24339,10 @@ macros were evaluated before the Milter connection itself had been negotiated. Problem reported by David Bürgin. Files: milter/milter.h, milter/milter.c, milter/milter8.c + +20200312 + + Bugfix (introduced: Postfix 2.3): panic with Postfix + multi-Milter configuration during MAIL FROM. Milter client + state was not properly reset after one of the Milters failed. + Reported by WeiYu Wu. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.4.9/src/global/mail_version.h new/postfix-3.4.10/src/global/mail_version.h --- old/postfix-3.4.9/src/global/mail_version.h 2020-02-02 21:13:52.000000000 +0100 +++ new/postfix-3.4.10/src/global/mail_version.h 2020-03-12 15:52:04.000000000 +0100 @@ -20,8 +20,8 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20200203" -#define MAIL_VERSION_NUMBER "3.4.9" +#define MAIL_RELEASE_DATE "20200312" +#define MAIL_VERSION_NUMBER "3.4.10" #ifdef SNAPSHOT #define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.4.9/src/smtpd/smtpd.c new/postfix-3.4.10/src/smtpd/smtpd.c --- old/postfix-3.4.9/src/smtpd/smtpd.c 2019-06-29 15:33:39.000000000 +0200 +++ new/postfix-3.4.10/src/smtpd/smtpd.c 2020-03-12 15:43:18.000000000 +0100 @@ -2605,6 +2605,7 @@ } if (state->milters != 0 && (state->saved_flags & MILTER_SKIP_FLAGS) == 0) { + state->flags |= SMTPD_FLAG_NEED_MILTER_ABORT; PUSH_STRING(saved_sender, state->sender, STR(state->addr_buf)); err = milter_mail_event(state->milters, milter_argv(state, argc - 2, argv + 2)); @@ -2720,11 +2721,14 @@ state->queue_id = 0; } if (state->sender) { - if (state->milters != 0) - milter_abort(state->milters); myfree(state->sender); state->sender = 0; } + /* WeiYu Wu: need to undo milter_mail_event() state change. */ + if (state->flags & SMTPD_FLAG_NEED_MILTER_ABORT) { + milter_abort(state->milters); + state->flags &= ~SMTPD_FLAG_NEED_MILTER_ABORT; + } if (state->verp_delims) { myfree(state->verp_delims); state->verp_delims = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfix-3.4.9/src/smtpd/smtpd.h new/postfix-3.4.10/src/smtpd/smtpd.h --- old/postfix-3.4.9/src/smtpd/smtpd.h 2018-08-23 14:51:53.000000000 +0200 +++ new/postfix-3.4.10/src/smtpd/smtpd.h 2020-03-12 15:43:18.000000000 +0100 @@ -206,6 +206,7 @@ #define SMTPD_FLAG_ILL_PIPELINING (1<<1) /* inappropriate pipelining */ #define SMTPD_FLAG_AUTH_USED (1<<2) /* don't reuse SASL state */ #define SMTPD_FLAG_SMTPUTF8 (1<<3) /* RFC 6531/2 transaction */ +#define SMTPD_FLAG_NEED_MILTER_ABORT (1<<4) /* undo milter_mail_event() */ /* Security: don't reset SMTPD_FLAG_AUTH_USED. */ #define SMTPD_MASK_MAIL_KEEP \
