]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.3-20050401
authorWietse Venema <wietse@porcupine.org>
Fri, 1 Apr 2005 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:31:00 +0000 (06:31 +0000)
postfix/HISTORY
postfix/src/global/dsn_util.h
postfix/src/global/mail_version.h
postfix/src/global/pipe_command.c

index e9128c38dd4994c1be235b5153d14f7ebafe77ae..16e094cb3f92e6b86ad93e51606b6b22d650f450 100644 (file)
@@ -10583,6 +10583,11 @@ Apologies for any names omitted.
        valid C. Bugs reported by Victor Duchovni. Files:
        util/sys_defs.h, global/dsn_util.h, tls/tls_client.c.
 
+       Bugfix: when delivery to command failed, command output was
+       not reported. Fix was to enable format checks for the new
+       dsn_vstring_update() module. File: global/dsn_util.h,
+       global/pipe_command.c.
+
 Open problems:
 
        Med: disable header address rewriting after XCLIENT?
index eadb0975d39edc53e738bab9c1c41f859645e979..75c44aed5b7f404b59ce073016c33b0e6d4023c2 100644 (file)
@@ -72,7 +72,7 @@ typedef struct {
 } DSN_VSTRING;
 
 extern DSN_VSTRING *dsn_vstring_alloc(int);
-extern DSN_VSTRING *dsn_vstring_update(DSN_VSTRING *, const char *, const char *,...);
+extern PRINTFLIKE(3, 4) DSN_VSTRING *dsn_vstring_update(DSN_VSTRING *, const char *, const char *,...);
 extern void dsn_vstring_free(DSN_VSTRING *);
 
 /* LICENSE
index 93f5e8bd5cc9f9044b2b367d38abec1cfd8fcd0e..1fb39eadceb22b927621039f32e9d5a63ba8b72e 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change the patchlevel and the release date. Snapshots change the
   * release date only.
   */
-#define MAIL_RELEASE_DATE      "20050331"
+#define MAIL_RELEASE_DATE      "20050401"
 #define MAIL_VERSION_NUMBER    "2.3"
 
 #define VAR_MAIL_VERSION       "mail_version"
index 2653056c60e282fc3fdff120266c011039db3761..2e7461fea6700dccb88decbe85b4b80d99566de6 100644 (file)
@@ -582,7 +582,7 @@ int     pipe_command(VSTREAM *src, DSN_VSTRING *why,...)
            /* Use <sysexits.h> compatible exit status. */
            else if (SYS_EXITS_CODE(WEXITSTATUS(wait_status))) {
                sp = sys_exits_detail(WEXITSTATUS(wait_status));
-               dsn_vstring_update(why, sp->dsn, "%s%s", sp->text,
+               dsn_vstring_update(why, sp->dsn, "%s%s%s", sp->text,
                              log_len ? ". Command output: " : "", log_buf);
                return (sp->dsn[0] == '4' ?
                        PIPE_STAT_DEFER : PIPE_STAT_BOUNCE);