diff --git a/postfix/HISTORY b/postfix/HISTORY index e9128c38d..16e094cb3 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -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? diff --git a/postfix/src/global/dsn_util.h b/postfix/src/global/dsn_util.h index eadb0975d..75c44aed5 100644 --- a/postfix/src/global/dsn_util.h +++ b/postfix/src/global/dsn_util.h @@ -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 diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 93f5e8bd5..1fb39eadc 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -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" diff --git a/postfix/src/global/pipe_command.c b/postfix/src/global/pipe_command.c index 2653056c6..2e7461fea 100644 --- a/postfix/src/global/pipe_command.c +++ b/postfix/src/global/pipe_command.c @@ -582,7 +582,7 @@ int pipe_command(VSTREAM *src, DSN_VSTRING *why,...) /* Use 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);