Postfix 2.3.3 fixes one message corruption problem in the Milter
client, and changes the appearance of bounce messages.
- File corruption while executing a Milter "header insert" action
with with headers-only mail (found with dk-filter). This caused
delivery agents to go into an infinite loop. As a precaution,
delivery agents now detect loops, and the queue manager now saves
such mail to the "corrupt" directory.
- Segmentation fault in the SMTP client while saving a cached
connection with unsent data. Some I/O cleanup was done in the
wrong order, causing Postfix to index some table with -1.
- Postfix no longer announces its name in delivery status notifications.
All other details of the default bounce text remain unchanged.
The reason for this change is that too many people believe that
Wietse provides a free helpdesk service that solves all their
email problems.
For more details, see the HISTORY changes below.
Prereq: "2.3.2"
diff -cr /var/tmp/postfix-2.3.2/src/global/mail_version.h ./src/global/mail_version.h
*** /var/tmp/postfix-2.3.2/src/global/mail_version.h Thu Jul 27 12:46:58 2006
--- ./src/global/mail_version.h Fri Aug 25 18:25:50 2006
***************
*** 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 "20060727"
! #define MAIL_VERSION_NUMBER "2.3.2"
#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 "200600825"
! #define MAIL_VERSION_NUMBER "2.3.3"
#ifdef SNAPSHOT
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
diff -cr /var/tmp/postfix-2.3.2/HISTORY ./HISTORY
*** /var/tmp/postfix-2.3.2/HISTORY Thu Jul 27 12:46:04 2006
--- ./HISTORY Fri Aug 25 18:24:02 2006
***************
*** 12637,12639 ****
--- 12637,12693 ----
Cleanup: change redundant milter_abort() and milter_disc_event()
calls into NO-OPs. This avoids unnecessary panic() events
for completely harmless conditions. File: milter/milter8.c.
+
+ 20060805
+
+ Bugfix (introduced Postfix 2.3): #ifdef damage caused
+ smtp_sasl_start() to be invoked twice. Reported by C-J
+ Lofstedt. File: smtp/smtp_sasl_proto.c.
+
+ 20060806
+
+ Postfix no longer announces its name in delivery status
+ notifications. Users believe that Wietse provides a free
+ helpdesk service that solves all their email problems.
+ Credits to Jonathan Balester. File: bounce/bounce_templates.c.
+
+ 20060807
+
+ Bugfix (introduced Postfix 2.2): when upgrading from Postfix
+ < 2.2 with the third-party TLS patch, the post-install
+ upgrade procedure didn't put a "?" in the existing tlsmgr
+ entry, causing tlsmgr to repeatedly start and exit when TLS
+ support was not compiled in. File: conf/post-install.
+
+ 20060812
+
+ Bugfix (introduced Postfix < alpha): safety mechanism in
+ mail_date() didn't work. Found in code review. File:
+ global/mail_date.c.
+
+ 20060822
+
+ Added missing logging for "message to large" etc. Files:
+ smtpd/smtpd.c, cleanup/cleanup_milter.c.
+
+ 20060823
+
+ Bugfix (introduced Postfix 2.2): segfault when vstream_fclose()
+ attempted to flush unwritten output, after vstream_fdclose()
+ had already disconnected the stream from its file descriptor.
+ File: util/vstream.c.
+
+ Bugfix (introduced Postfix 2.2): vstream_fdclose() did not
+ flush unwritten output before disconnecting a stream from
+ its file descriptor(s). File: util/vstream.c.
+
+ 20060825
+
+ Bugfix (introduced Postfix 2.3): with headers-only mail, a
+ Milter "header insert" action corrupted the queue file. The
+ cleanup server executed some end-of-body action before the
+ end-of-header actions. File: cleanup/cleanup_message.c.
+
+ Robustness: mail delivery agents now detect loops in queue
+ files. Files with too many backward jumps are saved to the
+ "corrupt" directory. File: global/record.c.
diff -cr /var/tmp/postfix-2.3.2/README_FILES/CDB_README ./README_FILES/CDB_README
*** /var/tmp/postfix-2.3.2/README_FILES/CDB_README Thu Jan 19 12:41:30 2006
--- ./README_FILES/CDB_README Sat Aug 12 10:32:44 2006
***************
*** 49,58 ****
"AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
% make
! After postfix has been built with cdb support, you can use "cdb" tables
wherever you can use read-only "hash", "btree" or "dbm" tables. However, the
"ppoossttmmaapp --ii" (incremental record insertion) and "ppoossttmmaapp --dd" (incremental
record deletion) command-line options are not available. For the same reason
the "cdb" map type cannot be used to store the persistent address verification
! cache for the verify(8) service.
--- 49,59 ----
"AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
% make
! After Postfix has been built with cdb support, you can use "cdb" tables
wherever you can use read-only "hash", "btree" or "dbm" tables. However, the
"ppoossttmmaapp --ii" (incremental record insertion) and "ppoossttmmaapp --dd" (incremental
record deletion) command-line options are not available. For the same reason
the "cdb" map type cannot be used to store the persistent address verification
! cache for the verify(8) service, or to store TLS session information for the
! tlsmgr(8) service.
diff -cr /var/tmp/postfix-2.3.2/README_FILES/SASL_README ./README_FILES/SASL_README
*** /var/tmp/postfix-2.3.2/README_FILES/SASL_README Tue Jul 18 20:29:13 2006
--- ./README_FILES/SASL_README Mon Aug 21 09:36:07 2006
***************
*** 61,84 ****
BBuuiillddiinngg PPoossttffiixx wwiitthh DDoovveeccoott SSAASSLL ssuuppppoorrtt
! Dovecot SASL support is available in Postfix 2.3 and later. The Dovecot source
! code is available via http://www.dovecot.org/. At the time of writing, only
! server-side SASL support is available, so you can't use it to authenticate to
! your network provider's server. Dovecot uses its own daemon process for
! authentication. This keeps the Postfix build process simple, because there is
! no need to link extra libraries into Postfix.
To generate the necessary Makefiles, execute the following in the Postfix top-
level directory:
% make makefiles CCARGS='-DUSE_SASL_AUTH -
! DDEF_SASL_SERVER_TYPE=\"dovecot\"'
After this, proceed with "make" as described in the INSTALL document.
Notes:
! * The "-DDEF_SASL_SERVER_TYPE" stuff is not necessary; it just makes Postfix
configuration a little more convenient because you don't have to specify
the SASL plug-in type in the Postfix main.cf file.
--- 61,83 ----
BBuuiillddiinngg PPoossttffiixx wwiitthh DDoovveeccoott SSAASSLL ssuuppppoorrtt
! Support for the Dovecot version 1 SASL protocol is available in Postfix 2.3 and
! later. At the time of writing, only server-side SASL support is available, so
! you can't use it to authenticate to your network provider's server. Dovecot
! uses its own daemon process for authentication. This keeps the Postfix build
! process simple, because there is no need to link extra libraries into Postfix.
To generate the necessary Makefiles, execute the following in the Postfix top-
level directory:
% make makefiles CCARGS='-DUSE_SASL_AUTH -
! DDEF_SERVER_SASL_TYPE=\"dovecot\"'
After this, proceed with "make" as described in the INSTALL document.
Notes:
! * The "-DDEF_SERVER_SASL_TYPE" stuff is not necessary; it just makes Postfix
configuration a little more convenient because you don't have to specify
the SASL plug-in type in the Postfix main.cf file.
diff -cr /var/tmp/postfix-2.3.2/RELEASE_NOTES ./RELEASE_NOTES
*** /var/tmp/postfix-2.3.2/RELEASE_NOTES Tue Jul 11 20:08:31 2006
--- ./RELEASE_NOTES Sun Aug 6 10:36:21 2006
***************
*** 11,16 ****
--- 11,23 ----
The mail_release_date configuration parameter (format: yyyymmdd)
specifies the release date of a stable release or snapshot release.
+ Incompatible changes with Postfix 2.3.3
+ ---------------------------------------
+
+ Postfix no longer announces its name in delivery status notifications.
+ Users believe that Wietse provides a free help desk service that
+ solves all their email problems.
+
Critical notes
--------------
diff -cr /var/tmp/postfix-2.3.2/conf/post-install ./conf/post-install
*** /var/tmp/postfix-2.3.2/conf/post-install Sat Feb 4 16:53:28 2006
--- ./conf/post-install Mon Aug 7 10:48:42 2006
***************
*** 643,648 ****
--- 643,649 ----
ed $config_directory/master.cf < After postfix has been built with cdb support, you can use
"cdb" tables wherever you can use read-only "hash", "btree" or
"dbm" tables. However, the "postmap -i" (incremental record
insertion) and "postmap -d" (incremental record deletion)
command-line options are not available. For the same reason the
"cdb" map type cannot be used to store the persistent address
! verification cache for the verify(8) service. After Postfix has been built with cdb support, you can use
"cdb" tables wherever you can use read-only "hash", "btree" or
"dbm" tables. However, the "postmap -i" (incremental record
insertion) and "postmap -d" (incremental record deletion)
command-line options are not available. For the same reason the
"cdb" map type cannot be used to store the persistent address
! verification cache for the verify(8) service, or to store
! TLS session information for the tlsmgr(8) service. Dovecot SASL support is available in Postfix 2.3 and later. The
! Dovecot source code is available via http://www.dovecot.org/. At
! the time
of writing, only server-side SASL support is available, so you can't
use it to authenticate to your network provider's server. Dovecot
uses its own daemon process for authentication. This keeps the
--- 113,120 ----
Support for the Dovecot version 1 SASL protocol is available
! in Postfix 2.3 and later. At the time
of writing, only server-side SASL support is available, so you can't
use it to authenticate to your network provider's server. Dovecot
uses its own daemon process for authentication. This keeps the
***************
*** 127,133 ****
The "-DDEF_SASL_SERVER_TYPE" stuff is not necessary; it just
makes Postfix configuration a little more convenient because you
don't have to specify the SASL plug-in type in the Postfix main.cf
file. The "-DDEF_SERVER_SASL_TYPE" stuff is not necessary; it just
makes Postfix configuration a little more convenient because you
don't have to specify the SASL plug-in type in the Postfix main.cf
file. Building Postfix with Dovecot SASL
support
! Building Postfix with Dovecot SASL
support
!
--- 126,132 ----
! % make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SASL_SERVER_TYPE=\"dovecot\"'
***************
*** 138,144 ****
! % make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"'
!
!
NOTE: postmaster notifications may contain confidential information + such as SASL passwords or message content. It is the system + administrator's responsibility to treat such information with care. +
+The error classes are:
*************** *** 11823,11829 ****The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction.
--- 11828,11835 ----
The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction. The response is ! always 450 in case of a temporary DNS error.
diff -cr /var/tmp/postfix-2.3.2/makedefs ./makedefs *** /var/tmp/postfix-2.3.2/makedefs Mon Jul 3 16:30:00 2006 --- ./makedefs Mon Jul 31 09:03:31 2006 *************** *** 122,127 **** --- 122,129 ---- ;; OpenBSD.3*) SYSTYPE=OPENBSD3 ;; + OpenBSD.4*) SYSTYPE=OPENBSD4 + ;; ekkoBSD.1*) SYSTYPE=EKKOBSD1 ;; NetBSD.1*) SYSTYPE=NETBSD1 diff -cr /var/tmp/postfix-2.3.2/man/man5/bounce.5 ./man/man5/bounce.5 *** /var/tmp/postfix-2.3.2/man/man5/bounce.5 Wed Jan 4 15:33:06 2006 --- ./man/man5/bounce.5 Sun Aug 6 10:39:51 2006 *************** *** 86,92 **** Subject: Undelivered Mail Returned to Sender Postmaster-Subject: Postmaster Copy: Undelivered Mail ! This is the $mail_name program at host $myhostname. I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below. --- 86,92 ---- Subject: Undelivered Mail Returned to Sender Postmaster-Subject: Postmaster Copy: Undelivered Mail ! This is the mail system at host $myhostname. I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below. *************** *** 97,103 **** delete your own text from the attached returned message. .ti +12 ! The $mail_name program EOF .in -4 .ad --- 97,103 ---- delete your own text from the attached returned message. .ti +12 ! The mail system EOF .in -4 .ad diff -cr /var/tmp/postfix-2.3.2/man/man5/master.5 ./man/man5/master.5 *** /var/tmp/postfix-2.3.2/man/man5/master.5 Wed Jul 5 20:26:26 2006 --- ./man/man5/master.5 Sat Aug 12 10:32:45 2006 *************** *** 134,140 **** number of seconds. The wake up is implemented by connecting to the service and sending a wake up request. A ? at the end of the wake-up time field requests that no wake up ! events be sent before the service is used. Specify 0 for no automatic wake up. .sp The \fBpickup\fR(8), \fBqmgr\fR(8) and \fBflush\fR(8) --- 134,140 ---- number of seconds. The wake up is implemented by connecting to the service and sending a wake up request. A ? at the end of the wake-up time field requests that no wake up ! events be sent before the first time a service is used. Specify 0 for no automatic wake up. .sp The \fBpickup\fR(8), \fBqmgr\fR(8) and \fBflush\fR(8) diff -cr /var/tmp/postfix-2.3.2/man/man5/postconf.5 ./man/man5/postconf.5 *** /var/tmp/postfix-2.3.2/man/man5/postconf.5 Sat Jul 22 20:58:18 2006 --- ./man/man5/postconf.5 Sat Aug 12 10:32:44 2006 *************** *** 3019,3024 **** --- 3019,3028 ---- may wish to turn on the policy (UCE and mail relaying) and protocol error (broken mail software) reports. .PP + NOTE: postmaster notifications may contain confidential information + such as SASL passwords or message content. It is the system + administrator's responsibility to treat such information with care. + .PP The error classes are: .IP "\fBbounce\fR (also implies \fB2bounce\fR)" Send the postmaster copies of the headers of bounced mail, and *************** *** 7164,7170 **** .SH unknown_address_reject_code (default: 450) The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction. .PP Do not change this unless you have a complete understanding of RFC 821. .SH unknown_client_reject_code (default: 450) --- 7168,7175 ---- .SH unknown_address_reject_code (default: 450) The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction. The response is ! always 450 in case of a temporary DNS error. .PP Do not change this unless you have a complete understanding of RFC 821. .SH unknown_client_reject_code (default: 450) diff -cr /var/tmp/postfix-2.3.2/proto/CDB_README.html ./proto/CDB_README.html *** /var/tmp/postfix-2.3.2/proto/CDB_README.html Thu Jan 19 12:41:28 2006 --- ./proto/CDB_README.html Wed Aug 9 15:27:38 2006 *************** *** 79,88 **** !
After postfix has been built with cdb support, you can use "cdb" tables wherever you can use read-only "hash", "btree" or "dbm" tables. However, the "postmap -i" (incremental record insertion) and "postmap -d" (incremental record deletion) command-line options are not available. For the same reason the "cdb" map type cannot be used to store the persistent address ! verification cache for the verify(8) service.
--- 79,89 ---- !After Postfix has been built with cdb support, you can use "cdb" tables wherever you can use read-only "hash", "btree" or "dbm" tables. However, the "postmap -i" (incremental record insertion) and "postmap -d" (incremental record deletion) command-line options are not available. For the same reason the "cdb" map type cannot be used to store the persistent address ! verification cache for the verify(8) service, or to store ! TLS session information for the tlsmgr(8) service.
diff -cr /var/tmp/postfix-2.3.2/proto/SASL_README.html ./proto/SASL_README.html *** /var/tmp/postfix-2.3.2/proto/SASL_README.html Tue Jul 18 20:28:40 2006 --- ./proto/SASL_README.html Mon Aug 21 09:35:29 2006 *************** *** 113,121 ****Dovecot SASL support is available in Postfix 2.3 and later. The ! Dovecot source code is available via http://www.dovecot.org/. At ! the time of writing, only server-side SASL support is available, so you can't use it to authenticate to your network provider's server. Dovecot uses its own daemon process for authentication. This keeps the --- 113,120 ----
Support for the Dovecot version 1 SASL protocol is available ! in Postfix 2.3 and later. At the time of writing, only server-side SASL support is available, so you can't use it to authenticate to your network provider's server. Dovecot uses its own daemon process for authentication. This keeps the *************** *** 127,133 ****
--- 126,132 ----! % make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SASL_SERVER_TYPE=\"dovecot\"'
*************** *** 138,144 ****! % make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"'
The "-DDEF_SASL_SERVER_TYPE" stuff is not necessary; it just makes Postfix configuration a little more convenient because you don't have to specify the SASL plug-in type in the Postfix main.cf file.
--- 137,143 ----The "-DDEF_SERVER_SASL_TYPE" stuff is not necessary; it just makes Postfix configuration a little more convenient because you don't have to specify the SASL plug-in type in the Postfix main.cf file.
diff -cr /var/tmp/postfix-2.3.2/proto/bounce ./proto/bounce *** /var/tmp/postfix-2.3.2/proto/bounce Wed Jan 4 15:33:04 2006 --- ./proto/bounce Sun Aug 6 10:10:55 2006 *************** *** 76,82 **** # Subject: Undelivered Mail Returned to Sender # Postmaster-Subject: Postmaster Copy: Undelivered Mail # ! # This is the $mail_name program at host $myhostname. # # I'm sorry to have to inform you that your message could not # be delivered to one or more recipients. It's attached below. --- 76,82 ---- # Subject: Undelivered Mail Returned to Sender # Postmaster-Subject: Postmaster Copy: Undelivered Mail # ! # This is the mail system at host $myhostname. # # I'm sorry to have to inform you that your message could not # be delivered to one or more recipients. It's attached below. *************** *** 87,93 **** # delete your own text from the attached returned message. # # .ti +12 ! # The $mail_name program # EOF # .in -4 # .ad --- 87,93 ---- # delete your own text from the attached returned message. # # .ti +12 ! # The mail system # EOF # .in -4 # .ad diff -cr /var/tmp/postfix-2.3.2/proto/master ./proto/master *** /var/tmp/postfix-2.3.2/proto/master Wed Jul 5 20:25:52 2006 --- ./proto/master Mon Aug 7 08:26:23 2006 *************** *** 128,134 **** # number of seconds. The wake up is implemented by connecting # to the service and sending a wake up request. A ? at the # end of the wake-up time field requests that no wake up ! # events be sent before the service is used. # Specify 0 for no automatic wake up. # .sp # The \fBpickup\fR(8), \fBqmgr\fR(8) and \fBflush\fR(8) --- 128,134 ---- # number of seconds. The wake up is implemented by connecting # to the service and sending a wake up request. A ? at the # end of the wake-up time field requests that no wake up ! # events be sent before the first time a service is used. # Specify 0 for no automatic wake up. # .sp # The \fBpickup\fR(8), \fBqmgr\fR(8) and \fBflush\fR(8) diff -cr /var/tmp/postfix-2.3.2/proto/postconf.proto ./proto/postconf.proto *** /var/tmp/postfix-2.3.2/proto/postconf.proto Sat Jul 22 20:57:51 2006 --- ./proto/postconf.proto Thu Aug 10 15:59:56 2006 *************** *** 2801,2806 **** --- 2801,2811 ---- error (broken mail software) reports. +NOTE: postmaster notifications may contain confidential information + such as SASL passwords or message content. It is the system + administrator's responsibility to treat such information with care. +
+The error classes are:
*************** *** 5894,5900 ****The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction.
--- 5899,5906 ----
The numerical Postfix SMTP server response code when a sender or recipient address is rejected by the reject_unknown_sender_domain ! or reject_unknown_recipient_domain restriction. The response is ! always 450 in case of a temporary DNS error.
diff -cr /var/tmp/postfix-2.3.2/src/bounce/2template_test.in ./src/bounce/2template_test.in
*** /var/tmp/postfix-2.3.2/src/bounce/2template_test.in Wed Jan 25 20:48:43 2006
--- ./src/bounce/2template_test.in Sun Aug 6 10:10:13 2006
***************
*** 4,10 ****
Subject: Undelivered Mail Returned to Sender
Postmaster-Subject: Postmaster Copy: Undelivered Mail
! This is the $mail_name program at host $myhostname.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
--- 4,10 ----
Subject: Undelivered Mail Returned to Sender
Postmaster-Subject: Postmaster Copy: Undelivered Mail
! This is the mail system at host $myhostname.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
***************
*** 14,20 ****
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
! The $mail_name program
EOF
delay_template = <