]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.3.4 v3.3.4
authorWietse Venema <wietse@porcupine.org>
Sat, 30 Mar 2019 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Mon, 1 Apr 2019 03:33:47 +0000 (23:33 -0400)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/smtp/smtp_connect.c
postfix/src/smtpd/smtpd_check.c

index fa93ae1da560ab17e9f1e63192d516b1b97ea961..c2d2c7ec27a983d7203ecf5345043d3e4919b9ff 100644 (file)
@@ -23431,3 +23431,20 @@ Apologies for any names omitted.
        reap orhpan processes from non-Postfix code running in the
        same container, instead of terminating with a panic. File:
        master/master_spawn.c.
+
+20190312
+
+       Bugfix (introduced: Postfix 2.2): reject_multi_recipient_bounce
+       has been producing false rejects starting with the Postfix
+       2.2 smtpd_end_of_data_restrictons, and for the same reasons,
+       did the same with the Postfix 3.4 BDAT command. The latter
+       was reported by Andreas Schulze. File: smtpd/smtpd_check.c.
+
+20190328
+
+       Bugfix (introduced: Postfix 3.0): LMTP connections over
+       UNIX-domain sockets were cached but not reused, due to a
+       cache lookup key mismatch. Therefore, idle cached connections
+       could exhaust LMTP server resources, resulting in two-second
+       pauses between email deliveries. This problem was investigated
+       by Juliana Rodrigueiro. File: smtp/smtp_connect.c.
index fda3d8757aca8c366c40a7b9746cd7f068e6972a..0921aacfd07113c3544216573dad4708074057b6 100644 (file)
@@ -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      "20190226"
-#define MAIL_VERSION_NUMBER    "3.3.3"
+#define MAIL_RELEASE_DATE      "20190330"
+#define MAIL_VERSION_NUMBER    "3.3.4"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
index 2bf209d92596acb3eacab6264685974a4b8a9efa..7db9e793916a5f5a03bd865d0dc0541445f6fcda 100644 (file)
@@ -492,6 +492,8 @@ static void smtp_connect_local(SMTP_STATE *state, const char *path)
      * the "unix:" prefix.
      */
     smtp_cache_policy(state, path);
+    if (state->misc_flags & SMTP_MISC_FLAG_CONN_CACHE_MASK)
+       SET_NEXTHOP_STATE(state, path);
 
     /*
      * Here we ensure that the iter->addr member refers to a copy of the
@@ -567,6 +569,12 @@ static void smtp_connect_local(SMTP_STATE *state, const char *path)
            msg_panic("%s: unix-domain destination not final!", myname);
        smtp_cleanup_session(state);
     }
+
+    /*
+     * Cleanup.
+     */
+    if (HAVE_NEXTHOP_STATE(state))
+       FREE_NEXTHOP_STATE(state);
 }
 
 /* smtp_scrub_address_list - delete all cached addresses from list */
index 94e8c0181b2c2f84a20a840191c2930c28801c4c..5c2690320a499e5844008dc77b42ec481979c782 100644 (file)
@@ -4580,7 +4580,7 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions,
                status = check_recipient_rcpt_maps(state, state->recipient);
        } else if (strcasecmp(name, REJECT_MUL_RCPT_BOUNCE) == 0) {
            if (state->sender && *state->sender == 0 && state->rcpt_count
-               > (strcmp(state->where, SMTPD_CMD_DATA) ? 0 : 1))
+               > (strcmp(state->where, SMTPD_CMD_RCPT) != 0))
                status = smtpd_check_reject(state, MAIL_ERROR_POLICY,
                                            var_mul_rcpt_code, "5.5.3",
                                "<%s>: %s rejected: Multi-recipient bounce",