Bugfix: allow for Milters that send an SMTP server reply
without RFC 3463 enhanced status code. Reported by Vladimir
Vassiliev. File: milter/milter8.c.
+
+20110903
+
+ Bugfix: master daemon panic with "master_spawn: at process
+ limit" error, when "postfix reload" reduced the process
+ limit from (a value larger than the current process count
+ for some service) to (a value <= the current process count),
+ and then a new connection was made to that service. This
+ is the smallest change that eliminates the problem. The
+ final solution involves structural change, and goes into
+ the development release. File: master/master_avail.c.
+
+20110921
+
+ Bugfix (introduced: Postfix 1.1): smtpd(8) did not sanitize
+ newline characters in cleanup(8) REJECT messages, causing
+ them to be sent out via SMTP as bare newline characters.
+ This happened when a REJECT pattern matched multi-line
+ header text. Discovered by Kevin Locke. File: smtpd/smtpd.c.
+
+20110922
+
+ Bugfix (introduced: Postfix 2.1): smtpd(8) sent multi-line
+ responses from a before-queue content filter as text with
+ bare <LF> instead of <CR><LF>. Found during code maintenance.
+ File: smtpd/smtpd_proxy.c.
+
+20111020
+
+ EAI Future-proofing: don't apply strict_mime_encoding_domain
+ checks to unknown message subtypes such as message/global*.
+ File: global/mime_state.c.
+
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20110902"
-#define MAIL_VERSION_NUMBER "2.8.5"
+#define MAIL_RELEASE_DATE "20111024"
+#define MAIL_VERSION_NUMBER "2.8.6"
#ifdef SNAPSHOT
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
if (state->curr_domain != MIME_ENC_7BIT)
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
mime_state_enc_name(state->curr_encoding));
- } else {
+ }
+ /* EAI: message/global allows non-identity encoding. */
+ else if (state->curr_stype == MIME_STYPE_RFC822) {
if (state->curr_encoding != state->curr_domain)
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
mime_state_enc_name(state->curr_encoding));
if (event == 0) /* XXX Can this happen? */
return;
- if (MASTER_THROTTLED(serv)) { /* XXX interface botch */
+ /* XXX Should check these when the process or service status is changed. */
+ if (!MASTER_LIMIT_OK(serv->max_proc, serv->total_proc)
+ || MASTER_THROTTLED(serv)) { /* XXX interface botch */
for (n = 0; n < serv->listen_fd_count; n++)
event_disable_readwrite(serv->listen_fd[n]);
} else {
if (state->err == 0) {
why = vstring_alloc(10);
state->err = mail_stream_finish(state->dest, why);
+ printable(STR(why), ' ');
} else
mail_stream_cleanup(state->dest);
state->dest = 0;
*/
if (LEN(proxy->buffer) < var_line_limit) {
if (VSTRING_LEN(proxy->buffer))
- VSTRING_ADDCH(proxy->buffer, '\n');
+ vstring_strcat(proxy->buffer, "\r\n");
vstring_strcat(proxy->buffer, STR(buffer));
}