From: Wietse Venema Date: Fri, 18 Apr 2003 05:00:00 +0000 (-0500) Subject: postfix-2.0.9 X-Git-Tag: v2.0.9^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5151608220b08926f4269eaa709243880d638458;p=thirdparty%2Fpostfix.git postfix-2.0.9 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index 638882f1a..d71d9a292 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -7711,7 +7711,7 @@ Apologies for any names omitted. Bugfix: extraneous warning about out-of-order original recipient records by Patrik Rak. Files: *qmgr/qmgr_message.c. -10030415 +20030415 Workaround: log a warning and reset incoming queue file time stamps when the file system clock is ahead of the @@ -7720,6 +7720,13 @@ Apologies for any names omitted. only once per process instance, to minimize the performance impact. File: global/mail_stream.c. +20030416 + + Bugfix: missing partial last line when 1) someone submits + 8-bit mail not ending in newline via /usr/sbin/sendmail + and 2) MIME input processing is turned off, and 3) MIME + 8bit->7bit conversion is requested upon delivery via SMTP. + Open problems: Low: smtp-source may block when sending large test messages. diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index f6422cad2..c3e5ca925 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,10 +20,10 @@ * Patches change the patchlevel and the release date. Snapshots change the * release date only, unless they include the same bugfix as a patch release. */ -#define MAIL_RELEASE_DATE "20030415" +#define MAIL_RELEASE_DATE "20030418" #define VAR_MAIL_VERSION "mail_version" -#define DEF_MAIL_VERSION "2.0.8" +#define DEF_MAIL_VERSION "2.0.9" extern char *var_mail_version; /* diff --git a/postfix/src/smtp/smtp_proto.c b/postfix/src/smtp/smtp_proto.c index b5c3007a5..c202ce03b 100644 --- a/postfix/src/smtp/smtp_proto.c +++ b/postfix/src/smtp/smtp_proto.c @@ -808,7 +808,25 @@ int smtp_xfer(SMTP_STATE *state) prev_type = rec_type; } - if (prev_type == REC_TYPE_CONT) /* missing newline at end */ + if (state->mime_state) { + + /* + * The cleanup server normally ends MIME content with a + * normal text record. The following code is needed to flush + * an internal buffer when someone submits 8-bit mail not + * ending in newline via /usr/sbin/sendmail while MIME input + * processing is turned off, and MIME 8bit->7bit conversion + * is requested upon delivery. + */ + mime_errs = + mime_state_update(state->mime_state, rec_type, "", 0); + if (mime_errs) { + smtp_mesg_fail(state, 554, + "MIME 7-bit conversion failed: %s", + mime_state_error(mime_errs)); + RETURN(0); + } + } else if (prev_type == REC_TYPE_CONT) /* missing newline */ smtp_fputs("", 0, session->stream); if ((state->features & SMTP_FEATURE_MAYBEPIX) != 0 && request->arrival_time < vstream_ftime(session->stream)