]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.3.3 v2.3.3
authorWietse Venema <wietse@porcupine.org>
Mon, 10 May 1976 18:27:05 +0000 (13:27 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 10 Feb 2018 20:47:46 +0000 (15:47 -0500)
31 files changed:
postfix/HISTORY
postfix/README_FILES/CDB_README
postfix/README_FILES/SASL_README
postfix/RELEASE_NOTES
postfix/conf/post-install
postfix/html/CDB_README.html
postfix/html/SASL_README.html
postfix/html/bounce.5.html
postfix/html/master.5.html
postfix/html/postconf.5.html
postfix/makedefs
postfix/man/man5/bounce.5
postfix/man/man5/master.5
postfix/man/man5/postconf.5
postfix/proto/CDB_README.html
postfix/proto/SASL_README.html
postfix/proto/bounce
postfix/proto/master
postfix/proto/postconf.proto
postfix/src/bounce/2template_test.in
postfix/src/bounce/bounce_templates.c
postfix/src/bounce/template_test.ref
postfix/src/cleanup/cleanup_message.c
postfix/src/cleanup/cleanup_milter.c
postfix/src/global/mail_date.c
postfix/src/global/mail_version.h
postfix/src/global/record.c
postfix/src/smtp/smtp_sasl_proto.c
postfix/src/smtpd/smtpd.c
postfix/src/util/sys_defs.h
postfix/src/util/vstream.c

index 76085db3277dca07397f92817e11389b96850eef..ae18da967bb9c08ba9e9ea36e66b8d685e8cb020 100644 (file)
@@ -12637,3 +12637,57 @@ Apologies for any names omitted.
        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.
index 0d00bf59ac8519d4dd076889ab5b930eab8272d3..b93993291a3c14629eee07055441855ae0da9660 100644 (file)
@@ -49,10 +49,11 @@ Alternatively, for the D.J.B. version of CDB:
         "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
+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
 "p\bpo\bos\bst\btm\bma\bap\bp -\b-i\bi" (incremental record insertion) and "p\bpo\bos\bst\btm\bma\bap\bp -\b-d\bd" (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.
+cache for the verify(8) service, or to store TLS session information for the
+tlsmgr(8) service.
 
index 87ae46b270523070597500c77340b48900300fed..5cf940db4c705f249616a743cabacf13d18651d5 100644 (file)
@@ -61,24 +61,23 @@ Needless to say, these commands are not available in earlier Postfix versions.
 
 B\bBu\bui\bil\bld\bdi\bin\bng\bg P\bPo\bos\bst\btf\bfi\bix\bx w\bwi\bit\bth\bh D\bDo\bov\bve\bec\bco\bot\bt S\bSA\bAS\bSL\bL s\bsu\bup\bpp\bpo\bor\brt\bt
 
-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.
+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_SASL_SERVER_TYPE=\"dovecot\"'
+    DDEF_SERVER_SASL_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
+  * 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.
 
index a1ac8c0405f60b0855ee798573a18be89080088c..7fb822a0aeca8fda123a9e1f9e8eee1ba45828c6 100644 (file)
@@ -11,6 +11,13 @@ instead, a new snapshot is released.
 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
 --------------
 
index 1d919ccfed20de35dc937c4c4ffb85c2e631f736..c64ff19f6164d0a5791d2b0f343098f7942f3c5c 100644 (file)
@@ -643,6 +643,7 @@ EOF
            ed $config_directory/master.cf <<EOF || exit 1
 /^tlsmgr[      ]*fifo[         ]/
 s/fifo/unix/
+s/[0-9][0-9]*/&?/
 p
 w
 q
index 9d81ee2f7a5f960f9dd7aa0cd9cc14a5b92d59de..a7e51350a4a2e70a1238196dbbe1cb2f9026b332 100644 (file)
@@ -79,10 +79,11 @@ like: </p>
 </pre>
 </blockquote>
 
-<p> After postfix has been built with cdb support, you can use
+<p> 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 "<b>postmap -i</b>" (incremental record
 insertion) and "<b>postmap -d</b>" (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 <a href="verify.8.html">verify(8)</a> service. </p>
+verification cache for the <a href="verify.8.html">verify(8)</a> service, or to store
+TLS session information for the <a href="tlsmgr.8.html">tlsmgr(8)</a> service. </p>
index 3086d14e4cc804d748f848dbdabf6ad24d41c4a1..20b1a562f1e30076346d06ee27781919f048f964 100644 (file)
@@ -113,9 +113,8 @@ Postfix versions. </p>
 <h2><a name="build_dovecot">Building Postfix with Dovecot SASL
 support</a></h2>
 
-<p> Dovecot SASL support is available in Postfix 2.3 and later. The
-Dovecot source code is available via <a href="http://www.dovecot.org/">http://www.dovecot.org/</a>. At
-the time
+<p> 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,7 +126,7 @@ in the Postfix top-level directory: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SASL_SERVER_TYPE=\"dovecot\"'
+% make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"'
 </pre>
 </blockquote>
 
@@ -138,7 +137,7 @@ in the Postfix top-level directory: </p>
 
 <ul>
 
-<li> <p> The "-DDEF_SASL_SERVER_TYPE" stuff is not necessary; it just
+<li> <p> 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 <a href="postconf.5.html">main.cf</a>
 file.  </p>
index 104247f9ee54f56de4d931f4a6aa36fda29120f1..7d5ebac31f2179104ca08a317482f5dd09a3ca0b 100644 (file)
@@ -76,7 +76,7 @@ BOUNCE(5)                                                            BOUNCE(5)
            Subject: Undelivered Mail Returned to Sender
            Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-           This is the $<a href="postconf.5.html#mail_name">mail_name</a> program at host $<a href="postconf.5.html#myhostname">myhostname</a>.
+           This is the mail system at host $<a href="postconf.5.html#myhostname">myhostname</a>.
 
            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,7 +86,7 @@ BOUNCE(5)                                                            BOUNCE(5)
            If you do so, please include this problem report. You can
            delete your own text from the attached returned message.
 
-                                          The $<a href="postconf.5.html#mail_name">mail_name</a> program
+                                          The mail system
            EOF
 
        The usage and specification of bounce templates is subject
index 06b0f6238eddd74d813cc77b30c7ba897a6a0e23..5bddcf7c3e0d6a3705f0bd14106056b4a234f458 100644 (file)
@@ -147,8 +147,8 @@ MASTER(5)                                                            MASTER(5)
               mented 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 auto-
-              matic wake up.
+              before the first time a service is used.  Specify 0
+              for no automatic wake up.
 
               The <a href="pickup.8.html"><b>pickup</b>(8)</a>, <a href="qmgr.8.html"><b>qmgr</b>(8)</a> and <a href="flush.8.html"><b>flush</b>(8)</a> daemons require
               a wake up timer.
index b485dc1d8b7cc706e45442e6dc88d9f992e07628..3b2d15490500e1800b3ed25ebfbfb8df906754cf 100644 (file)
@@ -5508,6 +5508,11 @@ may wish to turn on the policy (UCE and mail relaying) and protocol
 error (broken mail software) reports.
 </p>
 
+<p> 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.
+</p>
+
 <p>
 The error classes are:
 </p>
@@ -11823,7 +11828,8 @@ message contains no To: or Cc: message header.  </p>
 <p>
 The numerical Postfix SMTP server response code when a sender or
 recipient address is rejected by the <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>
-or <a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> restriction.
+or <a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> restriction.  The response is
+always 450 in case of a temporary DNS error.
 </p>
 
 <p>
index 02db2f623b4c597c94480a7219ea84445949db76..db9852b84e6b4989484e218159c08d941cfddbce 100644 (file)
@@ -122,6 +122,8 @@ case "$SYSTEM.$RELEASE" in
                ;;
   OpenBSD.3*)  SYSTYPE=OPENBSD3
                ;;
+  OpenBSD.4*)  SYSTYPE=OPENBSD4
+               ;;
   ekkoBSD.1*)  SYSTYPE=EKKOBSD1
                ;;
    NetBSD.1*)  SYSTYPE=NETBSD1
index 4d2d591f08dcb60ff3d979ddc5f1588ae86c1c98..ce3d037357de87356027cb5861885f24fba745bf 100644 (file)
@@ -86,7 +86,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Undelivered Mail Returned to Sender
 Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-This is the $mail_name program at host $myhostname.
+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,7 +97,7 @@ If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
 .ti +12
-                   The $mail_name program
+                   The mail system
 EOF
 .in -4
 .ad
index 012b1331a4d70b9139192ffa733cfc585c480aa6..632a5af0feec06fe344b414d5fa0ab9f52234a88 100644 (file)
@@ -134,7 +134,7 @@ Automatically wake up the named service after the specified
 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.
+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)
index 8484d021615c0985f29c2c0d93f6024ffc676085..c37d800ba583358cebb5cc6c1e82d9f6d850dc33 100644 (file)
@@ -3019,6 +3019,10 @@ default is to report only the most serious problems. The paranoid
 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,7 +7168,8 @@ message contains no To: or Cc: message header.
 .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.
+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)
index fd56bdc2ef03ffa7965babcf97429d0b8d7e924f..a025cd3e5c7ad1008e5464953f877c02015b4f6d 100644 (file)
@@ -79,10 +79,11 @@ like: </p>
 </pre>
 </blockquote>
 
-<p> After postfix has been built with cdb support, you can use
+<p> 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 "<b>postmap -i</b>" (incremental record
 insertion) and "<b>postmap -d</b>" (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. </p>
+verification cache for the verify(8) service, or to store
+TLS session information for the tlsmgr(8) service. </p>
index cd6d23ab1455964909f74c883258c39ad2570da3..b9c662aaf95fcbb3f1d8b9cedfc43b4ea12c5f6e 100644 (file)
@@ -113,9 +113,8 @@ Postfix versions. </p>
 <h2><a name="build_dovecot">Building Postfix with Dovecot SASL
 support</a></h2>
 
-<p> 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
+<p> 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,7 +126,7 @@ in the Postfix top-level directory: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SASL_SERVER_TYPE=\"dovecot\"'
+% make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"'
 </pre>
 </blockquote>
 
@@ -138,7 +137,7 @@ INSTALL document. </p>
 
 <ul>
 
-<li> <p> The "-DDEF_SASL_SERVER_TYPE" stuff is not necessary; it just
+<li> <p> 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.  </p>
index aaf5fd43f75d820f24ca3a051562d1e59191f6aa..f770a5e33e569aa9c5927344babad657f5c3bf6c 100644 (file)
@@ -76,7 +76,7 @@
 #      Subject: Undelivered Mail Returned to Sender
 #      Postmaster-Subject: Postmaster Copy: Undelivered Mail
 #      
-#      This is the $mail_name program at host $myhostname.
+#      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,7 +87,7 @@
 #      delete your own text from the attached returned message.
 #
 # .ti +12
-#                         The $mail_name program
+#                         The mail system
 #      EOF
 # .in -4
 # .ad
index 4720caa8abb4d33a27fe24edad9eb0502c66b240..57674b13d28ec1d4cdf0d286a69b4879c475da2d 100644 (file)
 #      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.
+#      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)
index 0918f8db92191d4c0b514c12dae9ed05aa28c07c..f031b6f571687c9207989689fd93668c03bf529f 100644 (file)
@@ -2801,6 +2801,11 @@ may wish to turn on the policy (UCE and mail relaying) and protocol
 error (broken mail software) reports.
 </p>
 
+<p> 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.
+</p>
+
 <p>
 The error classes are:
 </p>
@@ -5894,7 +5899,8 @@ The default time unit is s (seconds).
 <p>
 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.
+or reject_unknown_recipient_domain restriction.  The response is
+always 450 in case of a temporary DNS error.
 </p>
 
 <p>
index 0a26bd64d2aef5244540dddb796136bac997625d..48063735e4278070a2f87be8103434a93269abcd 100644 (file)
@@ -4,7 +4,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Undelivered Mail Returned to Sender
 Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-This is the $mail_name program at host $myhostname.
+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,7 +14,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 delay_template = <<EOF
@@ -23,7 +23,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Delayed Mail (still being retried)
 Postmaster-Subject: Postmaster Warning: Delayed Mail
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 ####################################################################
 # THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
@@ -37,7 +37,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 success_template = <<EOF
@@ -45,14 +45,14 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Successful Mail Delivery Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Your message was successfully delivered to the destination(s)
 listed below. If the message was delivered to mailbox you will
 receive no further notifications. Otherwise you may still receive
 notifications of mail delivery errors from other systems.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 verify_template = <<EOF
@@ -60,11 +60,11 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Mail Delivery Status Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Enclosed is the mail delivery report that you requested.
 
-                   The $mail_name program
+                   The mail system
 EOF
 failure_template = <<EOF
 Charset: us-ascii
@@ -72,7 +72,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Undelivered Mail Returned to Sender
 Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-This is the $mail_name program at host $myhostname.
+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.
@@ -82,7 +82,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 delay_template = <<EOF
@@ -91,7 +91,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Delayed Mail (still being retried)
 Postmaster-Subject: Postmaster Warning: Delayed Mail
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 ####################################################################
 # THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
@@ -105,7 +105,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 success_template = <<EOF
@@ -113,14 +113,14 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Successful Mail Delivery Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Your message was successfully delivered to the destination(s)
 listed below. If the message was delivered to mailbox you will
 receive no further notifications. Otherwise you may still receive
 notifications of mail delivery errors from other systems.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 verify_template = <<EOF
@@ -128,9 +128,9 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Mail Delivery Status Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Enclosed is the mail delivery report that you requested.
 
-                   The $mail_name program
+                   The mail system
 EOF
index b01f12686c251b2d25377a35eb4c5094f7ada621..d3e53c3b3c3062448bdde82f4355a0cbf2caa120 100644 (file)
@@ -93,7 +93,7 @@
   * The fail template is for permanent failure.
   */
 static const char *def_bounce_failure_body[] = {
-    "This is the $mail_name program at host $myhostname.",
+    "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.",
@@ -103,7 +103,7 @@ static const char *def_bounce_failure_body[] = {
     "If you do so, please include this problem report. You can",
     "delete your own text from the attached returned message.",
     "",
-    "                   The $mail_name program",
+    "                   The mail system",
     0,
 };
 
@@ -124,7 +124,7 @@ static const BOUNCE_TEMPLATE def_bounce_failure_template = {
   * The delay template is for delayed mail notifications.
   */
 static const char *def_bounce_delay_body[] = {
-    "This is the $mail_name program at host $myhostname.",
+    "This is the mail system at host $myhostname.",
     "",
     "####################################################################",
     "# THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #",
@@ -139,7 +139,7 @@ static const char *def_bounce_delay_body[] = {
     "If you do so, please include this problem report. You can",
     "delete your own text from the attached returned message.",
     "",
-    "                   The $mail_name program",
+    "                   The mail system",
     0,
 };
 
@@ -161,14 +161,14 @@ static const BOUNCE_TEMPLATE def_bounce_delay_template = {
   * notifications.
   */
 static const char *def_bounce_success_body[] = {
-    "This is the $mail_name program at host $myhostname.",
+    "This is the mail system at host $myhostname.",
     "",
     "Your message was successfully delivered to the destination(s)",
     "listed below. If the message was delivered to mailbox you will",
     "receive no further notifications. Otherwise you may still receive",
     "notifications of mail delivery errors from other systems.",
     "",
-    "                   The $mail_name program",
+    "                   The mail system",
     0,
 };
 
@@ -190,11 +190,11 @@ static const BOUNCE_TEMPLATE def_bounce_success_template = {
   * address verification (sendmail -bv).
   */
 static const char *def_bounce_verify_body[] = {
-    "This is the $mail_name program at host $myhostname.",
+    "This is the mail system at host $myhostname.",
     "",
     "Enclosed is the mail delivery report that you requested.",
     "",
-    "                   The $mail_name program",
+    "                   The mail system",
     0,
 };
 
index 253995a746e5717f7b3a4a5064e9a6ad825bc876..4769d56acab68c27c8fa3f62666873a4d5b9649c 100644 (file)
@@ -4,7 +4,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Undelivered Mail Returned to Sender
 Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-This is the $mail_name program at host $myhostname.
+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,7 +14,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 delay_template = <<EOF
@@ -23,7 +23,7 @@ From: MAILER-DAEMON (Mail Delivery System)
 Subject: Delayed Mail (still being retried)
 Postmaster-Subject: Postmaster Warning: Delayed Mail
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 ####################################################################
 # THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
@@ -37,7 +37,7 @@ For further assistance, please send mail to <postmaster>
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 success_template = <<EOF
@@ -45,14 +45,14 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Successful Mail Delivery Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Your message was successfully delivered to the destination(s)
 listed below. If the message was delivered to mailbox you will
 receive no further notifications. Otherwise you may still receive
 notifications of mail delivery errors from other systems.
 
-                   The $mail_name program
+                   The mail system
 EOF
 
 verify_template = <<EOF
@@ -60,9 +60,9 @@ Charset: us-ascii
 From: MAILER-DAEMON (Mail Delivery System)
 Subject: Mail Delivery Status Report
 
-This is the $mail_name program at host $myhostname.
+This is the mail system at host $myhostname.
 
 Enclosed is the mail delivery report that you requested.
 
-                   The $mail_name program
+                   The mail system
 EOF
index c990cdd7c6e71614324f25484116d6b7b1f93361..5af24c59c636d8cd45032fdea34ba6b8115e8d73 100644 (file)
@@ -797,10 +797,10 @@ static void cleanup_message_headerbody(CLEANUP_STATE *state, int type,
      * current file position so we can compute the message size lateron.
      */
     else if (type == REC_TYPE_XTRA) {
+       state->mime_errs = mime_state_update(state->mime_state, type, buf, len);
        if (state->milters || cleanup_milters)
            /* Make room for body modification. */
            cleanup_out_format(state, REC_TYPE_PTR, REC_TYPE_PTR_FORMAT, 0L);
-       state->mime_errs = mime_state_update(state->mime_state, type, buf, len);
        /* Ignore header truncation after primary message headers. */
        state->mime_errs &= ~MIME_ERR_TRUNC_HEADER;
        if (state->mime_errs && state->reason == 0) {
index 5cab391d74f47db300923f072712780c8690cd19..454083ae087de1b02d373bf0c7e2e432e721b5d3 100644 (file)
 
 static void cleanup_milter_set_error(CLEANUP_STATE *state, int err)
 {
-    if (err == EFBIG)
+    if (err == EFBIG) {
+       msg_warn("%s: queue file size limit exceeded", state->queue_id);
        state->errs |= CLEANUP_STAT_SIZE;
-    else
+    } else {
+       msg_warn("%s: write queue file: %m", state->queue_id);
        state->errs |= CLEANUP_STAT_WRITE;
+    }
 }
 
 /* cleanup_milter_error - return dummy error description */
index 93edfe9c20e47f3273789c1cdd0d0280ee305aec..55d8907766e40aeca7e84e0e35c7046e4cf9358c 100644 (file)
@@ -121,7 +121,7 @@ const char *mail_date(time_t when)
      * Finally, add the time zone name.
      */
     while (strftime(vstring_end(vp), vstring_avail(vp), " (%Z)", lt) == 0)
-       VSTRING_SPACE(vp, 100);
+       VSTRING_SPACE(vp, vstring_avail(vp) + 100);
     VSTRING_SKIP(vp);
 
     return (vstring_str(vp));
index 0fbecdc0ab490df7f1700639954b032aa90e6653..b337dc6be1572e87cb2068450b5ea384fec807cc 100644 (file)
@@ -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      "20060727"
-#define MAIL_VERSION_NUMBER    "2.3.2"
+#define MAIL_RELEASE_DATE      "200600825"
+#define MAIL_VERSION_NUMBER    "2.3.3"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index 6e4a78dcbdd211e9bddcc6aa6d2645fa3f858e73..a52003e75bc26b58a651b0d54a5846f2668892d2 100644 (file)
@@ -293,18 +293,42 @@ int     rec_get_raw(VSTREAM *stream, VSTRING *buf, ssize_t maxsize, int flags)
 int     rec_goto(VSTREAM *stream, const char *buf)
 {
     off_t   offset;
+    static const char *saved_path;
+    static off_t saved_offset;
+    static int reverse_count;
 
+    /*
+     * Crude workaround for queue file loops. VSTREAMs currently have no
+     * option to attach application-specific data, so we use global state and
+     * simple logic to detect if an application switches streams. We trigger
+     * on reverse jumps only. There's one reverse jump for every inserted
+     * header, but only one reverse jump for all appended recipients. No-one
+     * is likely to insert 10000 message headers, but someone might append
+     * 10000 recipients.
+     */
+#define STREQ(x,y) ((x) == (y) && strcmp((x), (y)) == 0)
+#define REVERSE_JUMP_LIMIT     10000
+
+    if (!STREQ(saved_path, VSTREAM_PATH(stream))) {
+       saved_path = VSTREAM_PATH(stream);
+       reverse_count = 0;
+       saved_offset = 0;
+    }
     while (ISSPACE(*buf))
        buf++;
     if ((offset = off_cvt_string(buf)) < 0) {
        msg_warn("%s: malformed pointer record value: %s",
                 VSTREAM_PATH(stream), buf);
        return (REC_TYPE_ERROR);
+    } else if (offset < saved_offset && ++reverse_count > REVERSE_JUMP_LIMIT) {
+       msg_warn("%s: too many reverse jump records", VSTREAM_PATH(stream));
+       return (REC_TYPE_ERROR);
     } else if (offset > 0 && vstream_fseek(stream, offset, SEEK_SET) < 0) {
        msg_warn("%s: seek error after pointer record: %m",
                 VSTREAM_PATH(stream));
        return (REC_TYPE_ERROR);
     } else {
+       saved_offset = offset;
        return (0);
     }
 }
index a76e77236845aaaddf8b1358a3c5b0ca4fcb0815..295c0fbd2e914065bd197d92186f9431eb122c21 100644 (file)
@@ -176,18 +176,19 @@ int     smtp_sasl_helo_login(SMTP_STATE *state)
        ret = smtp_sess_fail(state);
        /* Session reuse is disabled. */
     } else {
-#ifdef USE_TLS
+#ifndef USE_TLS
+       smtp_sasl_start(session, VAR_SMTP_SASL_OPTS,
+                       var_smtp_sasl_opts);
+#else
        if (session->tls_context == 0)
-#endif
            smtp_sasl_start(session, VAR_SMTP_SASL_OPTS,
                            var_smtp_sasl_opts);
-#ifdef USE_TLS
 #ifdef SNAPSHOT                                        /* XXX: Not yet */
        else if (session->tls_context->peer_verified)
            smtp_sasl_start(session, VAR_SMTP_SASL_TLSV_OPTS,
                            var_smtp_sasl_tlsv_opts);
-       else
 #endif
+       else
            smtp_sasl_start(session, VAR_SMTP_SASL_TLS_OPTS,
                            var_smtp_sasl_tls_opts);
 #endif
index 8dcc789b497d45ba85f2593482a2671f827d51fc..42d336337470b2a7aeedf85ca3eba4150065f37b 100644 (file)
@@ -2643,9 +2643,11 @@ static int data_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *unused_argv)
            && (state->proxy == 0 ? (++start, --len) == 0 : len == 1))
            break;
        if (state->err == CLEANUP_STAT_OK) {
-           if (var_message_limit > 0 && var_message_limit - state->act_size < len + 2)
+           if (var_message_limit > 0 && var_message_limit - state->act_size < len + 2) {
                state->err = CLEANUP_STAT_SIZE;
-           else {
+               msg_warn("%s: queue file size limit exceeded",
+                        state->queue_id ? state->queue_id : "NOQUEUE");
+           } else {
                state->act_size += len + 2;
                if (out_record(out_stream, curr_rec_type, start, len) < 0)
                    state->err = out_error;
index efb0b3b02457a06cb9d51fdc51b9686911000ae4..296806d3e427758162860a8076460e21b5248c7a 100644 (file)
@@ -26,7 +26,7 @@
 #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
     || defined(FREEBSD5) || defined(FREEBSD6) \
     || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \
-    || defined(OPENBSD2) || defined(OPENBSD3) \
+    || defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \
     || defined(NETBSD1) || defined(NETBSD2) || defined(NETBSD3) \
     || defined(EKKOBSD1)
 #define SUPPORTED
index d71f3589e72a7064c399844ceab5bfcfe172c4d1..ed857b3e3a5fed7c2b2952a272594571e0786b30 100644 (file)
@@ -1049,8 +1049,9 @@ int     vstream_fclose(VSTREAM *stream)
      */
     if (stream->pid != 0)
        msg_panic("vstream_fclose: stream has process");
-    if ((stream->buf.flags & VSTREAM_FLAG_WRITE_DOUBLE) != 0)
+    if ((stream->buf.flags & VSTREAM_FLAG_WRITE_DOUBLE) != 0 && stream->fd >= 0)
        vstream_fflush(stream);
+    /* Do not remove: vstream_fdclose() depends on this error test. */
     err = vstream_ferror(stream);
     if (stream->buf.flags & VSTREAM_FLAG_DOUBLE) {
        if (stream->read_fd >= 0)
@@ -1079,8 +1080,22 @@ int     vstream_fclose(VSTREAM *stream)
 
 int     vstream_fdclose(VSTREAM *stream)
 {
+
+    /*
+     * Flush unwritten output, just like vstream_fclose(). Errors are
+     * reported by vstream_fclose().
+     */
+    if ((stream->buf.flags & VSTREAM_FLAG_WRITE_DOUBLE) != 0)
+       (void) vstream_fflush(stream);
+
+    /*
+     * NOTE: Negative file descriptors are not part of the external
+     * interface. They are for internal use only, in order to support
+     * vstream_fdclose() without a lot of code duplication. Applications that
+     * rely on negative VSTREAM file descriptors will break without warning.
+     */
     if (stream->buf.flags & VSTREAM_FLAG_DOUBLE) {
-       stream->read_fd = stream->write_fd = -1;
+       stream->fd = stream->read_fd = stream->write_fd = -1;
     } else {
        stream->fd = -1;
     }