]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.9.15 postfix-2.9 v2.9.15
authorWietse Venema <wietse@porcupine.org>
Sat, 10 Oct 2015 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 10 Feb 2018 17:55:12 +0000 (12:55 -0500)
postfix/HISTORY
postfix/conf/postmulti-script
postfix/src/cleanup/cleanup_message.c
postfix/src/global/mail_version.h
postfix/src/postmulti/postmulti.c
postfix/src/util/scan_dir.c

index 61968e35d25d5da8150e0289b08acbf1bb036f8c..ef54a423ca58934d720a99446f84c8f51030abb0 100644 (file)
@@ -17968,3 +17968,27 @@ Apologies for any names omitted.
        SSLv2 or SSLv3.  See the RELEASE_NOTES file for how to get
        the old settings back. Files: global/mail_params.h,
        proto/postconf.proto, and files derived from those.
+
+20150924
+
+       Bugfix (introduced: 20090216-24): incorrect postmulti error
+       message. Reported by Patrik Koetter. Fix by Viktor Dukhovni.
+       File: postmulti/postmulti.c.
+
+       Workaround: don't create a new instance when the template
+       main.cf and master.cf files are missing, as happens on
+       Debian-like systems. Viktor Dukhovni. File: conf/postmulti-script.
+
+20150925
+
+       Bugfix (introduced: 19970309, fixed 20150421 in development
+       release): reset errno before calling readdir(), in order
+       to distinguish between an end-of-directory and an error
+       condition. File: scandir.c.
+
+20150930
+
+       Bugfix (introduced: 20040124): Milter client panic while
+       adding a header, because the PREPEND action used the same
+       output function for header_checks and body_checks.  Viktor
+       Dukhovni and Wietse. File: cleanup/cleanup_message.c.
index 417a8718ae0f634276c643c82f93b4f1333c8796..c68bd0ce87c7013216a0e30e5565297fb68415c2 100644 (file)
@@ -127,6 +127,11 @@ create|import)
                fatal "'$config_directory' lacks a master.cf file"
        }
 
+       test -f $daemon_directory/main.cf ||
+           fatal "Missing main.cf prototype: $daemon_directory/main.cf"
+       test -f $daemon_directory/master.cf ||
+           fatal "Missing master.cf prototype: $daemon_directory/master.cf"
+
        # Create instance-specific directories
        #
        test -d $config_directory ||
index 0227a69af8ca3670dae634b5e8b0e9910a78412a..64fc6e6157e8f5d4b58510139a45fd2648a1cf77 100644 (file)
@@ -385,11 +385,20 @@ static const char *cleanup_act(CLEANUP_STATE *state, char *context,
     if (STREQUAL(value, "PREPEND", command_len)) {
        if (*optional_text == 0) {
            msg_warn("PREPEND action without text in %s map", map_class);
-       } else if (strcmp(context, CLEANUP_ACT_CTXT_HEADER) == 0
-                  && !is_header(optional_text)) {
-           msg_warn("bad PREPEND header text \"%s\" in %s map -- "
-                    "need \"headername: headervalue\"",
-                    optional_text, map_class);
+       } else if (strcmp(context, CLEANUP_ACT_CTXT_HEADER) == 0) {
+           if (!is_header(optional_text)) {
+               msg_warn("bad PREPEND header text \"%s\" in %s map -- "
+                        "need \"headername: headervalue\"",
+                        optional_text, map_class);
+           } else {
+               VSTRING *temp;
+
+               cleanup_act_log(state, "prepend", context, buf, optional_text);
+               temp = vstring_strcpy(vstring_alloc(strlen(optional_text)),
+                                                    optional_text);
+               cleanup_out_header(state, temp);
+               vstring_free(temp);
+           }
        } else {
            cleanup_act_log(state, "prepend", context, buf, optional_text);
            cleanup_out_string(state, REC_TYPE_NORM, optional_text);
index c125953585e4b9cb99e31ef8ad69218e7260f032..805ccde544b6a92d852adfa7ed16cedad4b98bd7 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      "20150720"
-#define MAIL_VERSION_NUMBER    "2.9.14"
+#define MAIL_RELEASE_DATE      "20151010"
+#define MAIL_VERSION_NUMBER    "2.9.15"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index fcf66008cba1329424683b5d6c288a5acb5f0b34..170cff87cc13811da2070170443f15788e05dd9c 100644 (file)
@@ -1685,7 +1685,7 @@ int     main(int argc, char **argv)
        case 'e':
            if ((code = EDIT_CMD_CODE(optarg)) < 0)
                msg_fatal("Invalid '-e' edit action '%s'. Specify '%s', "
-                         "'%s', '%s', '%s', '%s', '%s', '%s', '%s' or '%s'",
+                         "'%s', '%s', '%s', '%s', '%s', '%s' or '%s'",
                          optarg,
                          EDIT_CMD_STR(EDIT_CMD_CREATE),
                          EDIT_CMD_STR(EDIT_CMD_DESTROY),
@@ -1694,8 +1694,7 @@ int     main(int argc, char **argv)
                          EDIT_CMD_STR(EDIT_CMD_ENABLE),
                          EDIT_CMD_STR(EDIT_CMD_DISABLE),
                          EDIT_CMD_STR(EDIT_CMD_ASSIGN),
-                         EDIT_CMD_STR(EDIT_CMD_INIT),
-                         optarg);
+                         EDIT_CMD_STR(EDIT_CMD_INIT));
            if (cmd_mode != code)
                command_mode_count++;
            cmd_mode = code;
index de124df5536d0ac5d87f1699840dbd431ca4046a..c2d47bbb367f06360c108125d8e96ecf4d616682 100644 (file)
@@ -78,6 +78,7 @@
 #endif
 #endif
 #include <string.h>
+#include <errno.h>
 
 /* Utility library. */
 
@@ -177,6 +178,13 @@ char   *scan_dir_next(SCAN_DIR *scan)
 #define STREQ(x,y)     (strcmp((x),(y)) == 0)
 
     if (info) {
+
+       /*
+        * Fix 20150421: readdir() does not reset errno after reaching the
+        * end-of-directory. This dates back all the way to the initial
+        * implementation of 19970309.
+        */
+       errno = 0;
        while ((dp = readdir(info->dir)) != 0) {
            if (STREQ(dp->d_name, ".") || STREQ(dp->d_name, "..")) {
                if (msg_verbose > 1)