[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: