Skip to content

v7.9.0

Choose a tag to compare

@Dev00113 Dev00113 released this 28 Feb 14:36

Release Highlights

Required:


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 ioCloseSocket and in-flight TLS IOCP callbacks
  • Fixed use-after-free race between ioCloseSocket and in-flight ReceiveLine IOCP callbacks
  • Fixed use-after-free race between ioCloseSocket and SendQuickComplete + hEvent close
  • Fixed UnregisterWaitEx(NULL) returning INVALID_HANDLE_VALUE — now blocks until dispatched callbacks finish
  • Fixed timer/TransmitFile race: InterlockedExchange + CloseSocket gate prevents double-complete

Memory Safety

  • Fixed 21 ULONGULONG_PTR pointer 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