]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.6.1 v2.6.1
authorWietse Venema <wietse@porcupine.org>
Tue, 19 May 2009 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 10 Feb 2018 19:31:14 +0000 (14:31 -0500)
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/src/cleanup/cleanup_envelope.c
postfix/src/global/mail_version.h
postfix/src/oqmgr/qmgr_message.c
postfix/src/qmgr/qmgr_message.c

index b1e6913915e8b453dbe1c0c827d7f8f1af515a2b..23597cf567fc2f9794943d40a580d00363ac5b57 100644 (file)
@@ -15220,3 +15220,14 @@ Apologies for any names omitted.
        Code cleanups: don't clobber -o command-line arguments so
        that Linux people can debug daemon command lines more easily.
        Files: master/*server.c.
+
+20090519
+
+       Bugfix (introduced: Postfix 2.3, but did not cause trouble
+       until 20090427).  Queue file corruption, with (smtpd_milters
+       or non_smtpd_milters) enabled, AND with delay_warning_time
+       enabled, AND with short envelope sender addresses e.g.,
+       local submissions with bare usernames, but not bounces).
+       The queue file would be corrupted when the delay_warning_time
+       record was marked as "done" after sending the "your mail
+       is delayed" notice.  File: qmgr/qmgr_message.c.
index 4433a5c555cb84ad5f740eba37d145febe099bf0..0a926aa3895d2340a8b845d683660dc071a6ad4d 100644 (file)
@@ -42,14 +42,9 @@ and more:
 
 Best of all, nothing changes when you use only one Postfix instance.
 
-The postfix-wrapper script (in the daemon directory) implements a
-simple but useful multi-instance manager, with instructions. The
-plug-in API itself is described in the postfix-wrapper(5) manpage.
-
-A more sophisticated multi-instance manager called postmulti(1) is
-approaching completion. A prototype version has been used internally
-at Morgan Stanley. This version will be adapted to the new plug-in
-API which makes some simplification possible.
+The MULTI_INSTANCE_README file presents an introduction to
+multi-instance management. Multi-instance support is based on an
+API that is described in the postfix-wrapper(5) manual page.
 
 Major changes - milter support
 ------------------------------
index 9ba1830dd27009f25d18dbf05a7f4f00432f68d3..2253fa17ae4853d58a3fd1dd114318fbbc5e37aa 100644 (file)
@@ -385,8 +385,7 @@ static void cleanup_envelope_process(CLEANUP_STATE *state, int type,
        cleanup_addr_sender(state, buf);
        if (state->milters || cleanup_milters) {
            /* Make room to replace sender. */
-           if (len < REC_TYPE_PTR_PAYL_SIZE)
-               rec_pad(state->dst, REC_TYPE_PTR, REC_TYPE_PTR_PAYL_SIZE - len);
+           rec_pad(state->dst, REC_TYPE_PTR, REC_TYPE_PTR_PAYL_SIZE);
            /* Remember the after-sender record offset. */
            if ((state->sender_pt_target = vstream_ftell(state->dst)) < 0)
                msg_fatal("%s: vstream_ftell %s: %m:", myname, cleanup_path);
index 7c41198c196a4cbfced4d3e27cef377c6c410bec..fd5201cad0b22759142c7228e351d5510887e54a 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      "20090511"
-#define MAIL_VERSION_NUMBER    "2.6.0"
+#define MAIL_RELEASE_DATE      "20090519"
+#define MAIL_VERSION_NUMBER    "2.6.1"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index b3a7b15a1e106adcf65510be8d066f081d17b6c1..27c5c92bbd05efcde2f072346a56173aa2257429 100644 (file)
@@ -366,10 +366,16 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
                msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
            curr_offset += message->data_size;
        }
-       rec_type = rec_get(message->fp, buf, 0);
+       rec_type = rec_get_raw(message->fp, buf, 0, REC_FLAG_NONE);
        start = vstring_str(buf);
        if (msg_verbose > 1)
            msg_info("record %c %s", rec_type, start);
+       if (rec_type == REC_TYPE_PTR) {
+           if ((rec_type = rec_goto(message->fp, start)) == REC_TYPE_ERROR)
+               break;
+           /* Need to update curr_offset after pointer jump. */
+           continue;
+       }
        if (rec_type <= 0) {
            msg_warn("%s: message rejected: missing end record",
                     message->queue_id);
index 24a981ed701f20d4b1f1433c166840e87f08847a..a588d67919055d68e661c55102afe1538459b069 100644 (file)
@@ -406,10 +406,16 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
                msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
            curr_offset += message->data_size;
        }
-       rec_type = rec_get(message->fp, buf, 0);
+       rec_type = rec_get_raw(message->fp, buf, 0, REC_FLAG_NONE);
        start = vstring_str(buf);
        if (msg_verbose > 1)
            msg_info("record %c %s", rec_type, start);
+       if (rec_type == REC_TYPE_PTR) {
+           if ((rec_type = rec_goto(message->fp, start)) == REC_TYPE_ERROR)
+               break;
+           /* Need to update curr_offset after pointer jump. */
+           continue;
+       }
        if (rec_type <= 0) {
            msg_warn("%s: message rejected: missing end record",
                     message->queue_id);