Import Postfix 2.8.7. Changes since version 2.8.6:

Postfix stable release 2.8.7 is available. This contains a workaround for
a problem that is fixed in Postfix 2.9.
- The postscreen daemon, which is not enabled by default, sent non-compliant
  SMTP responses (220- followed by 421) when it could not give a connection
  to a real smtpd process. These responses caused some remote SMTP clients
  to return mail as undeliverable.

  The workaround is to hang up after sending 220- without sending the
  421 "sorry" reply; this is harmless.
This commit is contained in:
tron 2011-11-09 18:58:43 +00:00
parent bbe84d1654
commit c3d89ca464
3 changed files with 24 additions and 6 deletions

View File

@ -16681,3 +16681,17 @@ Apologies for any names omitted.
checks to unknown message subtypes such as message/global*.
File: global/mime_state.c.
20111025
Workaround: postscreen sent non-compliant SMTP responses
(220- followed by 421) when it could not give a connection
to a real smtpd process, causing some remote SMTP clients
to bounce mail. The workaround is to hang up without sending
the 421 reply (which is harmless); the complete fix involves
too much change for a stable release. Problem reported by
Ralf Hildebrandt. File: postscreen/postscreen_send.c.
20111102
Portability: OpenBSD 5.x is supported. Files: makedefs,
util/sys_defs.h.

View File

@ -1,4 +1,4 @@
/* $NetBSD: mail_version.h,v 1.1.1.11 2011/10/28 07:09:49 tron Exp $ */
/* $NetBSD: mail_version.h,v 1.1.1.12 2011/11/09 19:01:35 tron Exp $ */
#ifndef _MAIL_VERSION_H_INCLUDED_
#define _MAIL_VERSION_H_INCLUDED_
@ -22,8 +22,8 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20111024"
#define MAIL_VERSION_NUMBER "2.8.6"
#define MAIL_RELEASE_DATE "20111105"
#define MAIL_VERSION_NUMBER "2.8.7"
#ifdef SNAPSHOT
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE

View File

@ -1,4 +1,4 @@
/* $NetBSD: postscreen_send.c,v 1.1.1.1 2011/03/02 19:32:26 tron Exp $ */
/* $NetBSD: postscreen_send.c,v 1.1.1.2 2011/11/09 19:02:00 tron Exp $ */
/*++
/* NAME
@ -189,7 +189,9 @@ void psc_send_socket(PSC_STATE *state)
PASS_CONNECT(psc_smtpd_service_name, NON_BLOCKING,
PSC_SEND_SOCK_CONNECT_TIMEOUT)) < 0) {
msg_warn("cannot connect to service %s: %m", psc_smtpd_service_name);
PSC_SEND_REPLY(state, "421 4.3.2 All server ports are busy\r\n");
/* Best effort: after sending 220-, hang up without sending 421. */
if ((state->flags & PSC_STATE_FLAG_PREGR_TODO) == 0)
PSC_SEND_REPLY(state, "421 4.3.2 All server ports are busy\r\n");
psc_free_session_state(state);
return;
}
@ -198,7 +200,9 @@ void psc_send_socket(PSC_STATE *state)
vstream_fileno(state->smtp_client_stream)) < 0) {
msg_warn("cannot pass connection to service %s: %m",
psc_smtpd_service_name);
PSC_SEND_REPLY(state, "421 4.3.2 No system resources\r\n");
/* Best effort: after sending 220-, hang up without sending 421. */
if ((state->flags & PSC_STATE_FLAG_PREGR_TODO) == 0)
PSC_SEND_REPLY(state, "421 4.3.2 No system resources\r\n");
psc_free_session_state(state);
return;
} else {