v7.9.0
Release Highlights
Required:
- Visual C++ 2015–2022 Redistributable (x86) — https://aka.ms/vc14/vc_redist.x86.exe
- Windows Vista or higher
New Features
- Added MLST/MLSD commands (RFC 3659) — structured directory listings with standardized fact sets for modern FTP clients.
Security & Libraries
- OpenSSL upgraded: 1.0.x → 3.6.1 with full TLS 1.3 and ECDHE support
- Tcl upgraded: 8.5.9 → 9.0.2 (no source patches required)
- New INI options:
OpenSSL_SecurityLevel,OpenSSL_Ciphers13,OpenSSL_Groups - Updated MAKECERT: now generates a 2048‑bit RSA key, uses SHA‑256, includes modern X.509 extensions, and uses OpenSSL 3.x EVP APIs
Stability / Race Conditions
- Fixed use-after-free race between
ioCloseSocketand in-flight TLS IOCP callbacks - Fixed use-after-free race between
ioCloseSocketand in-flightReceiveLineIOCP callbacks - Fixed use-after-free race between
ioCloseSocketandSendQuickComplete+hEventclose - Fixed
UnregisterWaitEx(NULL)returningINVALID_HANDLE_VALUE— now blocks until dispatched callbacks finish - Fixed timer/
TransmitFilerace:InterlockedExchange+CloseSocketgate prevents double-complete
Memory Safety
- Fixed 21
ULONG→ULONG_PTRpointer truncation sites in the custom bucket allocator - Fixed
tolower()/toupper()undefined behaviour on signed char values ≥ 0x80 in all path comparators - Fixed pointer truncation in transfer‑rate structure initialization (
SocketAPI.c)
Bug Fixes
- Fixed OpenSSL legacy provider failing silently on deployment — path now resolved relative to exe at runtime
- Fixed garbled log output when printing narrow (
char*) filenames in Unicode build - Fixed XCRC direction inversion
- Fixed 49‑day idle‑time wrap
- Fixed FXP passive‑mode compatibility
- Fixed MAKECERT buffer overrun