From aff3c74099bbdfaed50791c712882c1f5f9a5eda Mon Sep 17 00:00:00 2001 From: Wietse Z Venema Date: Wed, 13 Nov 2024 00:00:00 -0500 Subject: [PATCH] postfix-3.10-20241113 --- postfix/HISTORY | 24 +++++++++++++++++------- postfix/WISHLIST | 3 +++ postfix/proto/stop.double-history | 1 + postfix/proto/stop.spell-history | 1 + postfix/src/cleanup/cleanup_api.c | 3 ++- postfix/src/global/mail_version.h | 2 +- postfix/src/tlsproxy/tlsproxy.c | 4 ++-- postfix/src/xsasl/xsasl_cyrus_server.c | 1 - 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/postfix/HISTORY b/postfix/HISTORY index b67c988ee..c0e7bfd61 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -28474,13 +28474,6 @@ Apologies for any names omitted. authentication mechanism" now includes the name of that mechanism. File: xsasl/xsasl_dovecot_server.c -20241104 - - Logging: when a message transaction is canceled (i.e. - started but not completed), the cleanup server now logs - "queueid: canceled". This provides a clear signal to logfile - collation tools. File: cleanup/cleanup_api.c. - 20241028 Documentation: TLSRPT_README, section "Delivering TLSRPT @@ -28497,3 +28490,20 @@ Apologies for any names omitted. dict_pgsql_open() returned NULL when "hosts" specified a non-URI target and "dbname" was not set. Instead, it should return a surrogate dictionary. File: global/dict_pgsql.c. + +20241112 + + Logging: the cleanup server now logs "queueid: removed + (reason)" where "reason" is either "canceled" (message + transaction not completed) or "discarded" (DISCARD action + in access table, header/body_checks, or Milter response). + +20241113 + + Bugfix (defect introduced: Postfix 3.10, date 20240923): + TLSRPT support in tlsproxy dereferenced non-extent client + properties in the server role. Problem reported by Florian + Piekert. File: tlsproxy/tlsproxy.c + + Cleanup: removed an unused string variable. File: + xsasl/xsasl_cyrus_server.c diff --git a/postfix/WISHLIST b/postfix/WISHLIST index 6a6cb0d51..cbac5860d 100644 --- a/postfix/WISHLIST +++ b/postfix/WISHLIST @@ -35,6 +35,9 @@ Wish list: Add unit tests for smtp_tlsrpt.c, tlstrpd_wrapper.c, ... + Add sample master.cf entries for dovecot-lmtp and dovecot-pipe + with flags=DORX as appropriate, and single-recipient hints. + Add unit test for extpar.c Add tests for Message-ID extraction in the cleanup daemon. diff --git a/postfix/proto/stop.double-history b/postfix/proto/stop.double-history index 2a02341d3..e35b3d4da 100644 --- a/postfix/proto/stop.double-history +++ b/postfix/proto/stop.double-history @@ -138,3 +138,4 @@ proto proto mysql_table proto pgsql_table proto ldap_table local command c master master c master master h pipe pipe c postfix postfix c postscreen postscreen_dnsbl c qmgr qmgr_entry c qmqpd qmqpd_peer c smtp smtp h + Piekert File tlsproxy tlsproxy c diff --git a/postfix/proto/stop.spell-history b/postfix/proto/stop.spell-history index 383098cfd..3a57097ec 100644 --- a/postfix/proto/stop.spell-history +++ b/postfix/proto/stop.spell-history @@ -86,3 +86,4 @@ testfiles Antonin Verrier unescaped +dereferenced diff --git a/postfix/src/cleanup/cleanup_api.c b/postfix/src/cleanup/cleanup_api.c index 85ad1ae88..83ef0f084 100644 --- a/postfix/src/cleanup/cleanup_api.c +++ b/postfix/src/cleanup/cleanup_api.c @@ -354,7 +354,8 @@ int cleanup_flush(CLEANUP_STATE *state) (void) REMOVE(vstring_str(cleanup_trace_path)); if (REMOVE(cleanup_path)) msg_warn("remove %s: %m", cleanup_path); - msg_info("%s: canceled", state->queue_id); + msg_info("%s: removed (%s)", state->queue_id, state->errs ? + "canceled" : "discarded"); } /* diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 9de1b2edb..95ff70c9d 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -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 "20241111" +#define MAIL_RELEASE_DATE "20241113" #define MAIL_VERSION_NUMBER "3.10" #ifdef SNAPSHOT diff --git a/postfix/src/tlsproxy/tlsproxy.c b/postfix/src/tlsproxy/tlsproxy.c index 341311027..5159d54a8 100644 --- a/postfix/src/tlsproxy/tlsproxy.c +++ b/postfix/src/tlsproxy/tlsproxy.c @@ -738,9 +738,9 @@ static int tlsp_eval_tls_error(TLSP_STATE *state, int err) * already reported. */ #ifdef USE_TLSRPT - if (state->client_start_props->tlsrpt + if (state->is_server_role == 0 && (state->flags & TLSP_FLAG_DO_HANDSHAKE) - && state->is_server_role == 0) + && state->client_start_props->tlsrpt) trw_report_failure(state->client_start_props->tlsrpt, TLSRPT_VALIDATION_FAILURE, /* additional_info= */ (char *) 0, diff --git a/postfix/src/xsasl/xsasl_cyrus_server.c b/postfix/src/xsasl/xsasl_cyrus_server.c index e9032892f..46b8fa301 100644 --- a/postfix/src/xsasl/xsasl_cyrus_server.c +++ b/postfix/src/xsasl/xsasl_cyrus_server.c @@ -621,7 +621,6 @@ static int xsasl_cyrus_server_next(XSASL_SERVER *xp, const char *request, static const char *xsasl_cyrus_server_get_username(XSASL_SERVER *xp) { - const char *myname = "xsasl_cyrus_server_get_username"; XSASL_CYRUS_SERVER *server = (XSASL_CYRUS_SERVER *) xp; VOID_SERVEROUT_TYPE serverout = 0; int sasl_status;