Prereq: "2.7.6" diff -cr --new-file /var/tmp/postfix-2.7.6/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.7.6/src/global/mail_version.h Fri Sep 2 17:53:42 2011 --- ./src/global/mail_version.h Sun Oct 23 19:46:02 2011 *************** *** 20,27 **** * 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.7.6" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE --- 20,27 ---- * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ ! #define MAIL_RELEASE_DATE "20111924" ! #define MAIL_VERSION_NUMBER "2.7.7" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff -cr --new-file /var/tmp/postfix-2.7.6/HISTORY ./HISTORY *** /var/tmp/postfix-2.7.6/HISTORY Wed Aug 31 16:01:52 2011 --- ./HISTORY Thu Oct 20 17:33:53 2011 *************** *** 15956,15958 **** --- 15956,15991 ---- 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 instead of . 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. + diff -cr --new-file /var/tmp/postfix-2.7.6/src/global/mime_state.c ./src/global/mime_state.c *** /var/tmp/postfix-2.7.6/src/global/mime_state.c Wed Jan 9 08:59:40 2008 --- ./src/global/mime_state.c Thu Oct 20 17:33:53 2011 *************** *** 925,931 **** if (state->curr_domain != MIME_ENC_7BIT) REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN, mime_state_enc_name(state->curr_encoding)); ! } else { if (state->curr_encoding != state->curr_domain) REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN, mime_state_enc_name(state->curr_encoding)); --- 925,933 ---- if (state->curr_domain != MIME_ENC_7BIT) REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN, mime_state_enc_name(state->curr_encoding)); ! } ! /* 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)); diff -cr --new-file /var/tmp/postfix-2.7.6/src/master/master_avail.c ./src/master/master_avail.c *** /var/tmp/postfix-2.7.6/src/master/master_avail.c Thu Jun 11 16:46:17 2009 --- ./src/master/master_avail.c Thu Oct 20 17:33:53 2011 *************** *** 85,91 **** if (event == 0) /* XXX Can this happen? */ return; ! if (MASTER_THROTTLED(serv)) { /* XXX interface botch */ for (n = 0; n < serv->listen_fd_count; n++) event_disable_readwrite(serv->listen_fd[n]); } else { --- 85,93 ---- if (event == 0) /* XXX Can this happen? */ return; ! /* 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 { diff -cr --new-file /var/tmp/postfix-2.7.6/src/smtpd/smtpd.c ./src/smtpd/smtpd.c *** /var/tmp/postfix-2.7.6/src/smtpd/smtpd.c Sat Jan 8 18:43:48 2011 --- ./src/smtpd/smtpd.c Thu Oct 20 17:33:53 2011 *************** *** 3005,3010 **** --- 3005,3011 ---- 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; diff -cr --new-file /var/tmp/postfix-2.7.6/src/smtpd/smtpd_proxy.c ./src/smtpd/smtpd_proxy.c *** /var/tmp/postfix-2.7.6/src/smtpd/smtpd_proxy.c Fri Aug 27 16:40:33 2010 --- ./src/smtpd/smtpd_proxy.c Thu Oct 20 17:33:53 2011 *************** *** 777,783 **** */ if (LEN(proxy->buffer) < var_line_limit) { if (VSTRING_LEN(proxy->buffer)) ! VSTRING_ADDCH(proxy->buffer, '\n'); vstring_strcat(proxy->buffer, STR(buffer)); } --- 777,783 ---- */ if (LEN(proxy->buffer) < var_line_limit) { if (VSTRING_LEN(proxy->buffer)) ! vstring_strcat(proxy->buffer, "\r\n"); vstring_strcat(proxy->buffer, STR(buffer)); }