Bug#954073: buster-pu: package postfix/3.4.9-0+10debu1
Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
This is the next in the normal series of postfix bugfix updates. This
update has a single fix for a long standing milter processing error. It
should be low risk and is in Testing already.
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.
As usual, I have this version running on several machines of my own with
no issues noted. Debdiff attached. Please approve so I can upload.
Thanks,
Scott K
diff -Nru postfix-3.4.9/debian/changelog postfix-3.4.10/debian/changelog
--- postfix-3.4.9/debian/changelog 2020-02-16 01:30:10.000000000 -0500
+++ postfix-3.4.10/debian/changelog 2020-03-16 06:37:22.000000000 -0400
@@ -1,3 +1,15 @@
+postfix (3.4.10-0deb10u1) UNRELEASED; urgency=medium
+
+ [Wietse Venema]
+
+ * 3.4.10
+ - 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.
+
+ -- Scott Kitterman <scott@kitterman.com> Mon, 16 Mar 2020 06:37:22 -0400
+
postfix (3.4.9-0+10debu1) buster; urgency=medium
[Scott Kitterman]
diff -Nru postfix-3.4.9/HISTORY postfix-3.4.10/HISTORY
--- postfix-3.4.9/HISTORY 2020-02-02 12:51:46.000000000 -0500
+++ postfix-3.4.10/HISTORY 2020-03-12 10:58:26.000000000 -0400
@@ -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 -Nru postfix-3.4.9/src/global/mail_version.h postfix-3.4.10/src/global/mail_version.h
--- postfix-3.4.9/src/global/mail_version.h 2020-02-02 15:13:52.000000000 -0500
+++ postfix-3.4.10/src/global/mail_version.h 2020-03-12 10:52:04.000000000 -0400
@@ -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 -Nru postfix-3.4.9/src/smtpd/smtpd.c postfix-3.4.10/src/smtpd/smtpd.c
--- postfix-3.4.9/src/smtpd/smtpd.c 2019-06-29 09:33:39.000000000 -0400
+++ postfix-3.4.10/src/smtpd/smtpd.c 2020-03-12 10:43:18.000000000 -0400
@@ -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 -Nru postfix-3.4.9/src/smtpd/smtpd.h postfix-3.4.10/src/smtpd/smtpd.h
--- postfix-3.4.9/src/smtpd/smtpd.h 2018-08-23 08:51:53.000000000 -0400
+++ postfix-3.4.10/src/smtpd/smtpd.h 2020-03-12 10:43:18.000000000 -0400
@@ -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 \
Reply to: