X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/cf1376206284f2a4f11e32d931d4aade34c206c5..bec360ab3e1060187724480d109884e56f912b0a:/doc/doc-txt/ChangeLog diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 56b0aca9b..3a0e3efc5 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -5,6 +5,44 @@ options, and new features, see the NewStuff file next to this ChangeLog. Exim version 4.98 ----------------- +JH/01 Use fewer forks & execs for sending many messages to a single host. + By passing back more info from the transport to the delivery process, + we can loop there. A two-phase queue run will benefit, particularly for + mailinglist and smarthost cases. + +JH/02 Add transaction support for hintsdbs. The providers supported are tdb and + sqlite. Transactions are used for the wait-transport and retry DBs. + They imply locking internal to the DB. We no longer need a separate + lockfile, can keep the DB handle open for extended periods, yet + potentially benefit from concurrency on non-conflicting record uses. + +JH/03 With dkim_verify_minimal, avoid calling the DKIM ACL after the first + good verify. + +JH/04 Remove the docs and support scripts dealing with conversion of Exim + version 3 installations. + +JH/05 Fix hintsdb support for dbmjz when compiled using sqlite3. Previously + the backend support assumed keys would be simple C strings, but dbmjz + uses keys with embedded NUL bytes. The builtin hintsdb use is unaffected, + but installations using dbmjz will need to rebuild those DBs. + +JH/06 Bug 1141: When operating a continued-connection transport, verify that + the interface option, if specified, evaluates to match the connection. + Previously, a queued message for the same host was sent without checking. + +JH/07 Bug 3106: Fix coding in SPA authenticator. A macro argument was not + properly parenthesized, resulting in a logic error. While the simple + fix was provided by Andrew Aitchison, the over-large code block resulting + from this macro made me want to replace it with a real function so more + extensive rework becamse needed. + +JH/08 The output of "exim -bV" now includes lookup types built as dynamic-load + modules. + +Exim version 4.98 +----------------- + JH/01 Support list of dkim results in the dkim_status ACL condition, making it more usable in the data ACL. @@ -58,14 +96,116 @@ JH/11 Bug 3046: Fix queue-runs. Previously, the arrivel of a notification or the latter being missed, and no further queue scheduled runs being initiated. This ouwld be more likely on high-load systems. -JH/12 Enforce a data synch check before emitting the 354 "go ahead". Previously - this was only done if a pre-data ACL was configured. - -JH/13 Refuse to accept a line "dot, LF" as end-of-DATA unless operating in +JH/12 Refuse to accept a line "dot, LF" as end-of-DATA unless operating in LF-only mode (as detected from the first header line). Previously we did accept that in (normal) CRLF mode; this has been raised as a possible attack scenario (under the name "smtp smuggling"). +JH/13 Add an fdatasync call for the received message data file in spool, before + loggging reception and sending the SMTP ack. Previously we only flushed + the stdio buffer so there was still the possibility of a disk error. + +JH/14 Bug 3061: Avoid a split log line when trying to rewrite a malformed + address. Previously, for the last address in a header line (commonly + there is only one) the terminating newline was part of the logged + information. + +JH/15 Bug 3061: Ensure a log line is written for a malformed address in a + header, when parsing for address-qualification. Previously one was only + written if there were rewrite rules. + +JH/16 Two-phase queue runs are now reported in the daemon startup log line and + in exiwhat output. + +JH/17 Bug 3064: Fix combination of "-q -R ". Introduction of + the multiple-queue-runners facility for 4.97 broke this, giving only a + one-time run of the queue. + +JH/18 Bug 3068: Log a warning for use of deprecated syntax in query-style + lookups. + +JH/19 Fix TLS startup. When the last expansion done before the initiation of a + TLS session resulted in a forced-fail, a misleading error was logged for + the expansino of tls_certificates. This would affect the common case of + that option being set (main-section options) but not having any variable + parts. It could also potentially affect tls_privatekeys. The underlyding + coding errors go back to 4.90 but were only exposed in 4.97. + +JH/20 Bug 3047: A recent (somewhere between 10.34 and 10.42) version of the + pcre2 library starting allocating 20kB rather than 112 bytes per match + call, which broke the 2GB total limitation on Exim's memory management + when a user had over 104207 messages stored and the appendfile + maildir_quota_directory_regex option is in use. Release the allocated + memory every thosand files to avoid this. + The same issue arises with the ACL regex condition, which is applied + to every line of a received message. + +JH/21 Bug 3059: Fix crash in smtp transport. When running for a message for + which all recipients had been handled (itself an issue) a null-pointer + deref was done on trying to write a retry record. Fix that by counting + the outstanding recipients before trying to transmit the message. + The situation arose for a second MX try within a transport run, when the + first had perm-rejected a recipient (the only one for the connection, in + the case seen) during pipelining, and then closed the TCP connection. + The transport classified that as an I/O error, leaving the message + outstanding but having marked up the recipient as dealt-with. It then + tried another MX because of the I/O error. Fix this by converting the + message-level status to ok if there was a close but all recipients were + dealt with. Thanks to Wolfgand Breyha for debug runs. + +JH/22 The ESMTP_LIMITS facility (RFC 9422) is promoted from experimental status + and is now controlled by the build-time option DISABLE_ESMTP_LIMITS. + +JH/23 Bug 3066: Avoid leaking lookup database credentials to log. + +JH/24 Bug 3081: Fix a delivery process crash. When the router "errors_to" + option specified a fixed address, later rewriting on that address would + trip on the configuration data being readonly. Instead of modifying + in-place, copy data. Found and fixed by Peter Benie. + +JH/25 Bug 3079: Fix crash in dbmnz. When a key was present for zero-length + data a null pointer was followed. Find and testcase by Sebastian Bugge. + +JH/26 Fix encoding for an AUTH parameter on a MAIL FROM command. Previously + decimal 127 chars were not encoded, and lowercase hex was used for + encoded values. Outstanding since at least 1999. + +JH/27 Fix crash in logging. When a message with a large number of recipients + had been received, and logging of recipients is enabled, the buffer used + for logging could reach limit. A read using a null pointer would then + be done, resulting in a crash of the receiving process before an SMTP + ACK for the message was returned to the sending system. Duplicate + messages were created as a result. + Find and debug help by Mateusz Krawczyk + +JH/28 Bug 3086: Fix exinext for ipv6. Change the format of keys in the retry + DB, wrapping transport record bare-ip "host names" and ipv6 + "host addresses" in square-brackets. This makes the parsing that + exinext does more reliable. + +JH/29 Bug 3087: Fix SRS encode. A zero-length quoted element in the local-part + would cause a crash. + +JH/30 Bug 3029: Avoid feeding Resent-From: to DMARC. + +JH/31 Bug 3027: For -bh / -bhc tests change to using the compressed form of + ipv6 addresses for the sender. Previously the uncompressed form was used, + and if used in textual form this would result in behavior difference + versus non-bh. + +JH/32 Bug 3096: MAIL before HELO/EHLO, where required by hosts_require_helo, is + now classed as a protocol error and subject to smtp_max_synprot_errors. + +JH/33 Bug 2994: A subdir dsearch lookup should permit a directory name that starts + ".." and has following characters. + +JH/34 Fix delivery ordering for 2-phase queue run combined with + queue_run_in_order. + +JH/35 Bug 3099: fix parsing of MIME filename= split over multiple paramemters. + Previously the $mime_filename variable would have an incorrect value. + While in the code, extend coverage to name= which previously was only + supported for single parameters, despite also filling in $mime_filename. Exim version 4.97 @@ -642,7 +782,7 @@ JH/44 Bug 2701: Fix list-expansion of dns_ipv4_lookup. Previously, it did mx_fail_domains. JH/45 Use a (new) separate store pool-pair for DKIM verify working data. - Previously the permanent pool was used, so the sore could not be freed. + Previously the permanent pool was used, so the store could not be freed. This meant a connection with many messages would use continually-growing memory.