diff --git a/postfix/HISTORY b/postfix/HISTORY index b3a546c07..a73451d68 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -6088,12 +6088,12 @@ Apologies for any names omitted. with addresses of exactly 100 bytes long, resulting in SIGSEGV on systems with an "exact fit" malloc routine. Experienced by Ralf Hildebrandt; diagnosed by Victor - Duchovny. Files: *qmgr/qmgr_message.c. This is not a + Duchovni. Files: *qmgr/qmgr_message.c. This is not a security problem. Bugfix: make all recipient comparisons transitive, because Solaris qsort() causes SIGSEGV errors otherwise. Victor - Duchovny, Morgan Stanley. File: *qmgr/qmgr_message.c. + Duchovni, Morgan Stanley. File: *qmgr/qmgr_message.c. 20020302 @@ -6122,13 +6122,13 @@ Apologies for any names omitted. Bugfix: DBM maps should use different files for locking and for change detection. Problem reported by Victor - Duchovny, Morgan Stanley. Files: util/dict.h util/dict.c + Duchovni, Morgan Stanley. Files: util/dict.h util/dict.c util/dict_db.c util/dict_dbm.c global/mkmap.c local/alias.c. 20020313 Bugfix: mailq could show addresses with unusual characters - twice. Problem reported by Victor Duchovny, Morgan Stanley. + twice. Problem reported by Victor Duchovni, Morgan Stanley. File: showq/showq.c. Bugfix: null recipients weren't properly recorded in @@ -6356,10 +6356,10 @@ Apologies for any names omitted. Bugfix: close user@domain@postfix-style.virtual.domain source routing relaying loophole involving postfix-style virtual domains with @virtual.domain catch-all patterns. - Problem reported by Victor Duchovny. File: smtpd/smtpd_check.c. + Problem reported by Victor Duchovni. File: smtpd/smtpd_check.c. Bugfix: mail_addr_map() used the "wrong" @ character in - addresses with multiple @. Victor Duchovny. File: + addresses with multiple @. Victor Duchovni. File: global/mail_addr_map.c. Bugfix: for address localpart quoting, now quote @ as a @@ -6372,7 +6372,7 @@ Apologies for any names omitted. Safety: don't allow an OK access rule lookup result for user@domain@postfix-style.virtual.domain. Suggested by - Victor Duchovny, Morgan Stanley. File: smtpd/smtpd_check.c. + Victor Duchovni, Morgan Stanley. File: smtpd/smtpd_check.c. Bugfix: quote unquoted address localparts that need quoting. Files: global/tok822_parse.c, global/quote_82[12]_local.c. @@ -6380,7 +6380,7 @@ Apologies for any names omitted. Documentation: simplified the advanced content filtering example, and included a more advanced example for those who want to squeeze out more performance without running - multiple Postfix instances. Text by Victor Duchovny, Morgan + multiple Postfix instances. Text by Victor Duchovni, Morgan Stanley. File: README_FILES/FILTER_README. 20020510 @@ -6444,7 +6444,7 @@ Apologies for any names omitted. Safety: user@domain@domain is no longer accepted by the permit_mx_backup uce restriction (unless Postfix is configured - with "resolve_dequoted_address = no"). Victor Duchovny, + with "resolve_dequoted_address = no"). Victor Duchovni, Morgan Stanley. File: smtpd/smtpd_check.c. 20020515 @@ -6472,7 +6472,7 @@ Apologies for any names omitted. Feature: new MIME parser, written from scratch, that recognizes the structure of MIME encapsulated mail. Influenced - by comments from Victor Duchovny. This code can detect but + by comments from Victor Duchovni. This code can detect but will not decode obscure MIME formats or obscure character string encoding that Liviu Daia expresses concern about. @@ -6578,6 +6578,13 @@ Apologies for any names omitted. without proper logging. Files: global/mime_state.c, cleanup/cleanup_message.c. +20020531 + + Bugfix: the SMTP client code that prepends '.' to lines + starting with '.' had to be moved from its old place to + after the MIME output conversion. Problem found by Mark + Martinec. File: smtp/smtp_proto.c. + Open problems: Medium: old maildrop files are no longer readable by the diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h index c3ef842c6..470ca02a8 100644 --- a/postfix/src/global/mail_params.h +++ b/postfix/src/global/mail_params.h @@ -962,7 +962,7 @@ extern int var_lmtp_quit_tmout; extern int var_hopcount_limit; #define VAR_HEADER_LIMIT "header_size_limit" -#define DEF_HEADER_LIMIT 102400 +#define DEF_HEADER_LIMIT 10240 extern int var_header_limit; #define VAR_EXTRA_RCPT_LIMIT "extract_recipient_limit" diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 958343e67..abc06f077 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, unless they include the same bugfix as a patch release. */ -#define MAIL_RELEASE_DATE "20020529" +#define MAIL_RELEASE_DATE "20020601" #define VAR_MAIL_VERSION "mail_version" #define DEF_MAIL_VERSION "1.1.11-" MAIL_RELEASE_DATE diff --git a/postfix/src/global/mime_state.c b/postfix/src/global/mime_state.c index e8e527cce..badec42f6 100644 --- a/postfix/src/global/mime_state.c +++ b/postfix/src/global/mime_state.c @@ -201,7 +201,7 @@ /* .fi /* This code was implemented from scratch after reading the RFC /* documents. This was a relatively straightforward effort with -/* few if any surprises. Victor Duchovny of Morgan Stanley shared +/* few if any surprises. Victor Duchovni of Morgan Stanley shared /* his experiences with ambiguities in real-life MIME implementations. /* Liviu Daia of the Romanian Academy shared his insights in some /* of the darker corners. @@ -1052,9 +1052,9 @@ static void err_print(void *context, int err_flag, const char *text) msg_warn("%s: %.100s", mime_state_error(err_flag), text); } -int var_header_limit = 200; +int var_header_limit = 2000; int var_mime_maxdepth = 20; -int var_mime_bound_len = 200; +int var_mime_bound_len = 2000; int main(int unused_argc, char **argv) { diff --git a/postfix/src/smtp/smtp_proto.c b/postfix/src/smtp/smtp_proto.c index 12ba7e5dc..5cbf38da7 100644 --- a/postfix/src/smtp/smtp_proto.c +++ b/postfix/src/smtp/smtp_proto.c @@ -304,6 +304,8 @@ static void smtp_text_out(void *context, int rec_type, data_left = len; data_start = text; do { + if (state->space_left == var_smtp_line_limit && *data_start == '.') + smtp_fputc('.', session->stream); if (var_smtp_line_limit > 0 && data_left >= state->space_left) { smtp_fputs(data_start, state->space_left, session->stream); data_start += state->space_left; @@ -792,9 +794,6 @@ int smtp_xfer(SMTP_STATE *state) while ((rec_type = rec_get(state->src, state->scratch, 0)) > 0) { if (rec_type != REC_TYPE_NORM && rec_type != REC_TYPE_CONT) break; - if (prev_type != REC_TYPE_CONT) - if (vstring_str(state->scratch)[0] == '.') - smtp_fputc('.', session->stream); if (downgrading == 0) { smtp_text_out((void *) state, rec_type, vstring_str(state->scratch),