From d63b019a7de1fffb303e6c10d9eff5d2559bcfef Mon Sep 17 00:00:00 2001
From: Wietse Z Venema /etc/postfix/sasl/
,
cyrus_sasl_config_path and/or the distribution-specific
documentation to determine the expected location.
Some Debian-based Postfix distributions patch Postfix to
-hardcode a non-default search path, making it impossible to set an
-alternate search path via the "cyrus_sasl_config_path" parameter. This
-is likely to be the case when the distribution documents a
-Postfix-specific path (e.g. /etc/postfix/sasl/
) that is
-different from the default value of "cyrus_sasl_config_path" (which
-then is likely to be empty).
Some Debian-based Postfix distributions ignore the
+"cyrus_sasl_config_path" parameter setting, and force Postfix to
+open the file /etc/postfix/sasl/smtpd.conf
.
Note: some Debian-based Postfix distributions ignore the
+"cyrus_sasl_config_path" parameter setting, and force Postfix to
+open the file /etc/postfix/sasl/smtpd.conf
.
This feature is available in Postfix 2.5 and later when compiled with Cyrus SASL 2.1.22 or later.
diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 3237a6c2a..c487657d1 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -1111,6 +1111,10 @@ currently used only to locate the $smtpd_sasl_path.conf file. Specify zero or more directories separated by a colon character, or an empty value to use Cyrus SASL's built\-in search path. .PP +Note: some Debian\-based Postfix distributions ignore the +"cyrus_sasl_config_path" parameter setting, and force Postfix to +open the file/etc/postfix/sasl/smtpd.conf
.
+.PP
This feature is available in Postfix 2.5 and later when compiled
with Cyrus SASL 2.1.22 or later.
.SH daemon_directory (default: see "postconf \-d" output)
diff --git a/postfix/proto/SASL_README.html b/postfix/proto/SASL_README.html
index 2af2e7bfb..e19bb33c6 100644
--- a/postfix/proto/SASL_README.html
+++ b/postfix/proto/SASL_README.html
@@ -281,13 +281,9 @@ configuration file in /etc/postfix/sasl/
,
cyrus_sasl_config_path and/or the distribution-specific
documentation to determine the expected location.
- Some Debian-based Postfix distributions patch Postfix to
-hardcode a non-default search path, making it impossible to set an
-alternate search path via the "cyrus_sasl_config_path" parameter. This
-is likely to be the case when the distribution documents a
-Postfix-specific path (e.g. /etc/postfix/sasl/
) that is
-different from the default value of "cyrus_sasl_config_path" (which
-then is likely to be empty).
Some Debian-based Postfix distributions ignore the
+"cyrus_sasl_config_path" parameter setting, and force Postfix to
+open the file /etc/postfix/sasl/smtpd.conf
.
Note: some Debian-based Postfix distributions ignore the
+"cyrus_sasl_config_path" parameter setting, and force Postfix to
+open the file /etc/postfix/sasl/smtpd.conf
.
This feature is available in Postfix 2.5 and later when compiled with Cyrus SASL 2.1.22 or later.
diff --git a/postfix/src/dns/dns_lookup.c b/postfix/src/dns/dns_lookup.c index 4cf9a5f5a..0c212d258 100644 --- a/postfix/src/dns/dns_lookup.c +++ b/postfix/src/dns/dns_lookup.c @@ -745,6 +745,7 @@ static int dns_get_rr(DNS_RR **list, const char *orig_name, DNS_REPLY *reply, DNS_FIXED *fixed) { char temp[DNS_NAME_LEN]; + char ltemp[USHRT_MAX]; char *tempbuf = temp; UINT32_TYPE soa_buf[5]; int comp_len; @@ -754,6 +755,7 @@ static int dns_get_rr(DNS_RR **list, const char *orig_name, DNS_REPLY *reply, unsigned port = 0; unsigned char *src; unsigned char *dst; + int frag_len; int ch; #define MIN2(a, b) ((unsigned)(a) < (unsigned)(b) ? (a) : (b)) @@ -826,17 +828,28 @@ static int dns_get_rr(DNS_RR **list, const char *orig_name, DNS_REPLY *reply, #endif /* - * We impose the same length limit here as for DNS names. However, - * see T_TLSA discussion below. + * Impose the maximum length (65536) limit for TXT records. */ case T_TXT: - data_len = MIN2(pos[0] + 1, MIN2(fixed->length + 1, sizeof(temp))); - for (src = pos + 1, dst = (unsigned char *) (temp); - dst < (unsigned char *) (temp) + data_len - 1; /* */ ) { - ch = *src++; - *dst++ = (ISPRINT(ch) ? ch : ' '); + for (src = pos, dst = (unsigned char *) ltemp; + src < pos + fixed->length; /* */ ) { + frag_len = *src++; + if (msg_verbose) + msg_info("frag_len=%d text=\"%.*s\"", + (int) frag_len, (int) frag_len, (char *) src); + if (frag_len > reply->end - src + || frag_len >= ((unsigned char *) ltemp + sizeof(ltemp)) - dst) { + msg_warn("extract_answer: bad TXT string length: %d", frag_len); + return (DNS_RETRY); + } + while (frag_len-- > 0) { + ch = *src++; + *dst++ = (ISPRINT(ch) ? ch : ' '); + } } - *dst = 0; + *dst++ = 0; + tempbuf = ltemp; + data_len = dst - (unsigned char *) tempbuf; break; /* diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 69627fd39..c1cc9ea80 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 "20240722" +#define MAIL_RELEASE_DATE "20240724" #define MAIL_VERSION_NUMBER "3.10" #ifdef SNAPSHOT