]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.3-20170924
authorWietse Venema <wietse@porcupine.org>
Sun, 24 Sep 2017 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Tue, 26 Sep 2017 18:03:37 +0000 (14:03 -0400)
postfix/HISTORY
postfix/conf/postfix-script
postfix/src/global/mail_version.h
postfix/src/master/event_server.c
postfix/src/master/multi_server.c
postfix/src/master/single_server.c
postfix/src/master/trigger_server.c
postfix/src/util/vbuf_print.c

index 7df544a653e2f779e9d15bccb13d889135c9fefc..c4b0f4b56e0eaad60b272f3b50a4fbe068dc0be7 100644 (file)
@@ -23049,9 +23049,9 @@ Apologies for any names omitted.
 20170620
 
        Bugfix (introduced: Postfix 3.2) extension propagation was
-       broken with "recipient_delimiter = .", because of code that
-       was too clever by half. Files: global/mail_adr_crunch.c,
-       global/mail_addr_crunch.ref.
+       broken with "recipient_delimiter = .". This change reverts
+       a change that was trying to be too clever. Files:
+       global/mail_adr_crunch.c, global/mail_addr_crunch.ref.
 
 20170704
 
@@ -23136,14 +23136,9 @@ Apologies for any names omitted.
 
 20170831
 
-       Portability (introduced Postfix 1.0): possible cause for
-       panic in postqueue when listing the deferred queue. This
-       assigned the result from unsigned integer subtraction to a
-       signed integer, followed by a safety check to ensure that
-       the result was non-negative. This assignment relied on
-       undefined behavior, meaning that a compiler may eliminate
-       the safety check, causing the program to fail later. File:
-       postqueue/showq_compat.c.
+       Undefined behavior (introduced Postfix 1.0): after subtracting
+       a larger unsigned integer from a smaller one, do not assign
+       the result to a signed integer. File: postqueue/showq_compat.c.
 
 20170910
 
@@ -23151,3 +23146,15 @@ Apologies for any names omitted.
        width and precision in format strings (%*, %.*, and %*.*).
        These checks were lost with the Postfix 3.2.2 rewrite of
        the vbuf_print formatter. File: vbuf_print.c.
+
+       Bugfix (introduced: postfix-alpha): improve the 'fatal:
+       invalid option' message to show the optopt value instead of
+       the getopt() result.  Files: master/*server.c.
+
+20170923
+
+       Bugfix (introduced: Postfix 3.2): panic in the postqueue
+       command after output write error while listing the queue.
+       This change restores a write error check that was lost with
+       the Postfix 3.2.2 rewrite of the vbuf_print formatter.
+       Problem reported by Andreas Schulze. File: util/vbuf_print.c.
index 9d414b09fb90b10260b82e03c4d75f0b314e7c2c..6eb3c35894e6a7bdc8aa93ebf215ae1930a8dc8a 100755 (executable)
@@ -367,8 +367,7 @@ tls)
        ;;
 
 *)
-       $ERROR "unknown command: '$1'"
-       $FATAL "usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration)"
+       $FATAL "unknown command: '$1'. Usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration)"
        exit 1
        ;;
 
index b61fa6e362d04e200482923184eaa96016185edf..c7370a1ad23eae6ab31deb61d86ec3665b1ea2dd 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20170910"
+#define MAIL_RELEASE_DATE      "20170924"
 #define MAIL_VERSION_NUMBER    "3.3"
 
 #ifdef SNAPSHOT
index 5d32fcac20071ff3c8a7fb9604c10babc1517ef3..d2b434e684041f4d596e808bd923eac40accc44d 100644 (file)
@@ -675,7 +675,7 @@ NORETURN event_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
            zerolimit = 1;
            break;
        default:
-           msg_fatal("invalid option: %c", c);
+           msg_fatal("invalid option: %c", optopt);
            break;
        }
     }
index bc016c6058fb1fb981bf0d2d64accc40ace78311..dadfcdab8d7c0b304639f7736dc11b7fce40ba23 100644 (file)
@@ -671,7 +671,7 @@ NORETURN multi_server_main(int argc, char **argv, MULTI_SERVER_FN service,...)
            zerolimit = 1;
            break;
        default:
-           msg_fatal("invalid option: %c", c);
+           msg_fatal("invalid option: %c", optopt);
            break;
        }
     }
index 0784bc46975486b5ba76c12e956826583024dd42..0ca755452a577e37dfd0c32a1da4ab27fa3cd554 100644 (file)
@@ -549,7 +549,7 @@ NORETURN single_server_main(int argc, char **argv, SINGLE_SERVER_FN service,...)
            zerolimit = 1;
            break;
        default:
-           msg_fatal("invalid option: %c", c);
+           msg_fatal("invalid option: %c", optopt);
            break;
        }
     }
index b5c683e0849ccb6a9540f17af9dfd845e3e6fb29..16f15b75d39d24494101396f46c76e5a47798bde 100644 (file)
@@ -552,7 +552,7 @@ NORETURN trigger_server_main(int argc, char **argv, TRIGGER_SERVER_FN service,..
            zerolimit = 1;
            break;
        default:
-           msg_fatal("invalid option: %c", c);
+           msg_fatal("invalid option: %c", optopt);
            break;
        }
     }
index 5e63ee9f46597fcf8aed4bca0fac2166d19c7df0..bdb6fe9445f98cb039f7de8c56d5360c5da37259 100644 (file)
 #ifndef NO_SNPRINTF
 #define VBUF_SNPRINTF(bp, sz, fmt, arg) do { \
        ssize_t _ret; \
-       VBUF_SPACE((bp), (sz)); \
+       if (VBUF_SPACE((bp), (sz)) != 0) \
+           return (bp); \
        _ret = snprintf((char *) (bp)->ptr, (bp)->cnt, (fmt), (arg)); \
        if (_ret < 0) \
            msg_panic("%s: output error for '%s'", myname, mystrdup(fmt)); \
     } while (0)
 #else
 #define VBUF_SNPRINTF(bp, sz, fmt, arg) do { \
-       VBUF_SPACE((bp), (sz)); \
+       if (VBUF_SPACE((bp), (sz)) != 0) \
+           return (bp); \
        sprintf((char *) (bp)->ptr, (fmt), (arg)); \
        VBUF_SKIP(bp); \
     } while (0)