hMailServer 6.2.21: inbound mail from a Postfix relay could hang forever
-
Inbound mail from a Postfix-based relay could hang forever. The connection logs
354 OK, send., stops dead, and the sender eventually gives up with "timed out while sending end of data", leaving a zero-byte file in the Data folder. Anyone taking mail from Postfix or a Proxmox Mail Gateway was affected, and a same-host relay hits it almost every time. Three previous releases claimed to fix it and did not. This one was settled by running a real Postfix 3.10 against the server and reading the bytes on the wire.What the upgrade involved
Two known issues stand. Equal-preference MX records are not randomised (RFC 5321 5.1); the server always tries them in the order the resolver returned, and a comment and COM help string that claimed otherwise have been corrected. One-click unsubscribe (RFC 8058) is not implemented. RFC 2369
List-*headers are still emitted for distribution-list postings.Changes
- Postfix pipelines the terminating dot and
QUITinto one segment, so the terminator sits mid-buffer and every tail-only end-of-data check missed it. The receive path now searches for<CRLF>.<CRLF>anywhere in what arrived and returns the remainder to the command parser. Bare-LF terminators are still recognised only at the very end of the buffer, with anything behind them discarded, which is the CVE-2023-51764 rule. - SMTP dot transparency (RFC 5321 4.5.2) now carries line-start context across buffer boundaries in both directions. Previously a line-leading dot landing a byte or two into a chunk went unstuffed, silently truncating messages.
- Sieve scripts were left behind by domain and account renames and deletes. Recreating an address could reactivate the previous holder's filter, redirects included. Renames now move the Sieve tree, deletes remove it, and the Control Panel writes the script only after the save succeeds.
- Sieve
bodytest (RFC 5173) implemented and advertised over ManageSieve, with:text,:contentand:raw. SORT () US-ASCII ALLspun a connection thread at 100% of a core forever. Empty sort criteria are now rejected per RFC 5256.- The 512 MB message-list cache never evicted and only counted upwards. Eviction now measures entries as they are.
- Malformed DNS answers are retried once over TCP. The Control Panel MX tool (#29) now uses the server's resolver via
Utilities.ResolveMXRecords. - Control Panel: seven Administrator functions restored, plus Welcome page icon alignment (#30).
Everything in the 6.2.20 notes is in this release too.
- Postfix pipelines the terminating dot and
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login