From: Wietse Venema Date: Sat, 30 Mar 2019 05:00:00 +0000 (-0500) Subject: postfix-3.4.5 X-Git-Tag: v3.4.5^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3af4d40c02bc63809a04067436a6248c2c1efd0e;p=thirdparty%2Fpostfix.git postfix-3.4.5 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index e160a9ec0..9f9c0ab67 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -24195,3 +24195,16 @@ Apologies for any names omitted. does the same with the Postfix 3.4 BDAT command. The latter was reported by Andreas Schulze. File: smtpd/smtpd_check.c. +20190319 + + With message_size_limit=0 (which is NOT DOCUMENTED), BDAT + chunks were always rejected as too large. File: smtpd/smtpd.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. diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index 77249e445..88b8b87bf 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -6241,7 +6241,7 @@ substitutions in regular expression maps.

(default: empty)

The name of an optional logfile that is written by the Postfix -postlogd(8) service. A non-empty value selects logging to syslogd(8). +postlogd(8) service. An empty value selects logging to syslogd(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start-fg".

diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 4a92d179c..a97621d4d 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -3750,7 +3750,7 @@ substitutions in regular expression maps. This feature is available in Postfix 2.3 and later. .SH maillog_file (default: empty) The name of an optional logfile that is written by the Postfix -\fBpostlogd\fR(8) service. A non\-empty value selects logging to \fBsyslogd\fR(8). +\fBpostlogd\fR(8) service. An empty value selects logging to \fBsyslogd\fR(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start\-fg". .PP diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index ae1b6f4be..77a1baff8 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -17550,7 +17550,7 @@ parameter. See there for details.

%PARAM maillog_file

The name of an optional logfile that is written by the Postfix -postlogd(8) service. A non-empty value selects logging to syslogd(8). +postlogd(8) service. An empty value selects logging to syslogd(8). Specify "/dev/stdout" to select logging to standard output. Stdout logging requires that Postfix is started with "postfix start-fg".

diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 187a7c21e..b7e58902e 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -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 "20190314" -#define MAIL_VERSION_NUMBER "3.4.4" +#define MAIL_RELEASE_DATE "20190330" +#define MAIL_VERSION_NUMBER "3.4.5" #ifdef SNAPSHOT #define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff --git a/postfix/src/smtp/smtp_connect.c b/postfix/src/smtp/smtp_connect.c index dc142ff70..aad48e409 100644 --- a/postfix/src/smtp/smtp_connect.c +++ b/postfix/src/smtp/smtp_connect.c @@ -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_SCACHE_REQUEST_NEXTHOP(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_SCACHE_REQUEST_NEXTHOP(state)) + CLEAR_SCACHE_REQUEST_NEXTHOP(state); } /* smtp_scrub_address_list - delete all cached addresses from list */ diff --git a/postfix/src/smtpd/smtpd.c b/postfix/src/smtpd/smtpd.c index d115fca3b..f3e107072 100644 --- a/postfix/src/smtpd/smtpd.c +++ b/postfix/src/smtpd/smtpd.c @@ -3878,7 +3878,8 @@ static int bdat_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv) } } /* Block too large chunks. */ - if (state->act_size > var_message_limit - chunk_size) { + if (var_message_limit > 0 + && state->act_size > var_message_limit - chunk_size) { state->error_mask |= MAIL_ERROR_POLICY; msg_warn("%s: BDAT request from %s exceeds message size limit", state->queue_id ? state->queue_id : "NOQUEUE",