# changelog

author: Terje Rosten <terjeros@gmail.com> - 3.1.8-1
changelog:
  - 3.1.8
  - apt-key is gone
  - Add openssl-devel to buildreq
  - Fix include issue
  - apt-extracttemplates has moved


author: Jaroslav Škarvada <jskarvad@redhat.com> - 4.98-1
changelog:
  - New version
    Resolves: rhbz#2297124
  - Fixed incorrect parsing of multiline rfc2231 header filename
    Resolves: CVE-2024-39929
  - Enabled SRS support


author: Jaroslav Škarvada <jskarvad@redhat.com> - 4.98.1-1
changelog:
  - New version
    Resolves: rhbz#2346977
  - Fixed possible remote SQL injection
    Resolves: CVE-2025-26794
  - Updated exim maintainers keyring


author: Richard Russon <rich@flatcap.org> - 20250510-1
changelog:
  - Contrib
    - #4616 Fix gpg-json output
  - Bug Fixes
    - #4600 main: don't stop if /var/spool/mail is missing
    - #4602 color: fix quoted maths
    - #4604 Don't consider "weed" when writing an email to file
    - #4605 help: fix leaks
    - #4612 imap: check for incomplete Mailboxes on sync
    - #4622 fix label completion crash
  - Translations
    - #4622 update Esperanto translation
    - Update lt_LT translations
  - Docs
    -  docs: fix broken functions
  - Build
    - #4607 Check for DocBook XSL
    - #4618 Build and test on FreeBSD


author: Richard Russon <rich@flatcap.org> - 20250905-1
changelog:
  - Security
    - #4623 ncrypt/crypt.c: Protect Message-ID
  - Features
    - #4644 Provide an option to confirm on an empty To
  - Contrib
    - #4645 Add ayu-dark-256 colorscheme
  - Bug Fixes
    - #4635 Handle a non-existing message_cache_dir
    - #4642 Decouple `$crypt_encryption_info` and `$crypt_protected_headers_weed` from `$devel_security`
    - #4650 Return success after querying for config
  - Changed Config
    - Add: `confirm_empty_to = no`
    Confirm when sending an e-mail with an empty To:
  - Translations
    - 100% German
    - 100% Turkish
    - 99% Hungarian
    - 98% Lithuanian
    - 89% French
  - Build
    - #4636 Update FreeBSD CI and workaround `pkg` bug
    - actions: use checkout v5
  - Code
    - #4023 tweak observer event types
    - #4628 Use the standard countof instead of our mutt_array_size()
    - #4637 Update types in test dummy code
    - #4638 remove useless const qualifier from log_queue_get()
    - #4655 Make sure ctype(3) function arguments are valid
    - #4657 Fix warning about unused function and data
    - #4659 Include term.h and [n]curses.h consistently


author: Richard Russon <rich@flatcap.org> - 20260105-1
changelog:
  - Security
    - #4725	deprecate old ssl and tls options
  - Features
    - #4718	add `$message_id_format`
    - Notmuch: hide some old/deprecated features
  - Bug Fixes
    - #4666	limit: force refresh of index bar
    - #4671	Update the status bar on thread [un]collapse
    - #4673	shrink history file on every new entry
    - #4679	Flush S/MIME passkey on failure to sign
    - #4684	execute message-hook sooner
    - #4687	fix: exec auto-completion
    - #4688	Fix infinite loop in GnuTLS socket I/O when socket blocks
    - #4696	`cmd_parse_fetch()`: debug: avoid NULL dereference
    - #4697	expunge: guard against segfault
    - #4719	alias: complete when only one match
    - #4726	imap: protect against crash on shutdown
    - fix resolve for tagged save
    - help: fix sorting of unbound functions
    - help: hide deprecated functions
  - Changed Config
    - New: `message_id_format = "<%z@%f>"`
    - Deprecated `ssl_use_sslv2`
    - Deprecated `ssl_use_sslv3`
    - Deprecated `ssl_use_tlsv1`
    - Deprecated `ssl_use_tlsv1_1`
  - Translations
    - 100% Esperanto
    - 100% Lithuanian
    - 100% Serbian
    - 100% Turkish
  - Docs
    - #4665	Revamp the S/MIME docs
    - #4680	Document how to use S/MIME with GPGMe
    - #4692	update the contribution guidelines
    - fix deprecated $pager example
    - lots man pages fixes
    - update help for sort options
  - Build
    - #4668	fix build for re-entrant ncurses
    - #4727	make openssl/gnutls mutually exclusive
    - libkey: light refactoring
    - lua: create liblua
  - Code
    - #4695	Replace some `TAILQ` uses with `ARRAY`
    - convert the ctype wrappers to use `bool`
    - global invert `OptNoCurses` to `OptGui`
    - key: collapse redirector functions
    - move `km_init()` earlier in startup
    - opcodes: add flags to `MenuFuncOp`
    - pass focused window to global functions
    - Use `buf_at()` to get a char from a `Buffer`
    - use `StringArray` everywhere


author: Richard Russon <rich@flatcap.org> - 20260406-1
changelog:
  - Features
    - #4799 Add IMAP connection monitoring, timeouts, and reconnection backoff
  - Bug Fixes
    - #4755 Fix off-by-one in ARRAY_RESERVE()
    - #4819 Fix IMAP crash when changing folders
    - Fix freeze in IMAP with OpenSSL
    - Fix blocking IMAP pipeline drain with many mailboxes
    - Fix crash on threaded index update
    - Fix crash on NULL thread in display subject
    - Fix menu half-down when data fits in one page
    - Fix alias search prompt
    - Fix index tag colours
    - Protect hooks against unhook during execution
    - Fix leak in pattern alias search
    - Consistently convert headers to LF EOL convention
  - Changed Config
    - Changed: `compose_show_preview = yes`
    Display a preview of the message body in the Compose window
  - Docs
    - `$message_id_format`: mention Base64Url encoding
    - Fix descriptions of deprecated config options
  - Build
    - #4826 Use optreset on Solaris too
    - #4827 Avoid function name clash on Solaris
    - #4828 Allow Solaris to use qsort_s
    - Check docs requirements in configure
  - Code
    - Fix graphviz debug output


author: Richard Russon <rich@flatcap.org> - 20260504-1
changelog:
  - Security
    - Fix GSSAPI buffer underflow on short unwrapped tokens
    - Reject percent-encoded NUL bytes in URL decoding
    - Skip CN fallback when SAN dNSName entries exist (RFC6125)
    - Cap POP3 UIDL responses to prevent OOM from a malicious server
    - Harden POP host URL copy
  - Bug Fixes
    - #4836 imap: fix memory leak in `msg_parse_flags`
    - #4849 Fix memmove in `mutt_str_expand_tabs`
    - #4850 IMAP: enhance stability with re-entrancy protection and reconnection fixes
    - #4852 Say which mailcap field we are looking for
    - #4853 Don't overwrite content_type
    - pager: fix crash on `uncolor *`
    - pager: fix wrong line index in signature syntax realloc
    - pager: fix OOB read on short log lines in `display_line()`
    - pager: fix off-by-one in newline restoration
    - imap: fix sort for missing emails
    - imap: fix crash when syncing mailbox on exit
    - Fix crash in `cmd_parse_fetch()` when edata is NULL
    - log: fix missing errors on startup
    - Force cursor to be visible on exit


author: Paul Howarth <paul@city-fan.org> - 1.57-1
changelog:
  - Update to 1.57 (rhbz#2325504)
    - Add on_error callback to csv()
    - Retain runtime error from csv()


author: Paul Howarth <paul@city-fan.org> - 1.58-1
changelog:
  - Update to 1.58 (rhbz#2334923)
    - Add strict_eol (warnings default in csv())
    - Add XS line number in errors
    - Add streaming support (not set in stone)


author: Paul Howarth <paul@city-fan.org> - 1.60-1
changelog:
  - Update to 1.60 (rhbz#2343165)
    - Add SECURITY.md
    - CR/NL/CRNL inside quoted fields not affected by strict_eol
    - Fix incorrect error 2014 (GH#62)


author: Paul Howarth <paul@city-fan.org> - 1.61-1
changelog:
  - Update to 1.61 (rhbz#2383739)
    - Add love letter to CSV from xan project with reference
    - Bugtracker to Github (long overdue) (GH#63)
    - Update to Devel::PPPort-3.73


author: Paul Howarth <paul@city-fan.org> - 1.62-1
changelog:
  - Update to 1.62 (rhbz#2463743)
    - It is 2026
    - Fix possible stack corruption (GH#65, CVE-2026-7111)


author: Paul Howarth <paul@city-fan.org> - 1.37-1
changelog:
  - Update to 1.37
    Features:
    - Add LoadBytes, LoadUTF8, DumpBytes, DumpUTF8 functions (GH#51)
    Fixes:
    - Fix heap buffer overflow in the YAML emitter - CVE-2026-4177 (GH#67)
    - Fix DumpFile with tied filehandles (IO::String, IO::Scalar) (GH#22)
    - Fix _is_glob to recognize IO::Handle subclasses (GH#23)
    - Fix memory leak when dumping filehandles (CPAN RT#41199, GH#42)
    - Fix dumping of tied hashes (GH#31)
    - Fix dumping strings starting with '...' as unquoted plain scalars (GH#34)
    - Fix dumping strings with tabs and carriage returns as plain scalars (GH#59)
    - Fix double-dash YAML parsing (RT#34073, GH#35)
    - Fix extra newline after empty arrays/hashes in YAML output (GH#36)
    - Remove trailing whitespace from YAML output lines (GH#37, GH#38, GH#39)
    - Fix quoting of \r and \t in YAML output instead of emitting raw bytes
      (GH#40)
    - Fix growing !!perl/regexp objects in round-trips (GH#43)
    - Fix quoted '=' being transformed into 'str' (GH#45)
    - Fix backslash-space escape in double-quoted YAML strings (GH#61)
    - Fix flow sequence comma separator not recognized without trailing space
      (GH#60)
    - Fix wide character warning in DumpFile (GH#28)
    - Fix inline arrays without space after comma (GH#25)
    - Fix: quote strings matching YAML implicit types to prevent round-trip
      failures (GH#26)
    - Fix JSON::Syck::Dump to use JSON-valid \uXXXX escapes in output (GH#21)
    - Fix JSON::Syck::Load decoding of \/ and \uXXXX escape sequences (GH#30)
    - Fix: apply JSON postprocessing to JSON::Syck::DumpFile output (GH#104)
    - Fix: add tied-filehandle fallback to JSON::Syck::DumpFile (GH#98)
    - Fix: handle JSON escape sequences in SingleQuote mode Load (GH#99)
    - Fix: restore Perl 5.8 compatibility in test suite (GH#121)
    - Fix: correct copy-paste error in Makefile.PL clean target (GH#101)
    - Fix: correct $SortKeys POD default from false to true (GH#100)
    - Fix: correct POD documentation errors (GH#103)
    Maintenance:
    - Add C23-compatible function prototypes for GCC 15 compatibility (GH#112)
    - Silence macOS compiler warnings (GH#92)
    - Guard stdint.h include for portability (HP-UX 11.11) (GH#33)
    - Guard stdint.h include in syck_st.h for portability (GH#24)
    - Update ppport.h to 3.68
    - Add regression tests for magical variable dumping (GH#32)
    - CI: modernize GitHub Actions workflow (GH#123, GH#124)
    - CI: add disttest job to validate MANIFEST completeness
  - Use %{make_build} and %{make_install}
  - Drop workaround for C23 incompatibility


author: Paul Howarth <paul@city-fan.org> - 1.39-1
changelog:
  - Update to 1.39
    Bug Fixes:
    - Fix: escape solidus (/) as \/ in JSON::Syck::Dump for XSS safety
      (GH#125, GH#130)
    - Fix: anchor tracking for blessed scalar refs in Dump (GH#126, GH#131)
    - Fix: prevent buffer underflow in base60 (sexagesimal) parsing (GH#133)
    - Fix: guard against NULL type from strtok in tag parsing (GH#135)
    - Fix: correct copy-paste bug in syck_seq_assign() ASSERT macros (GH#137)
    - Fix t/yaml-implicit-typing.t failure with -Duselongdouble perls
      (GH#138, GH#139)
    Improvements:
    - Resolve TODO tests for empty/invalid YAML to match actual behaviour
      (GH#127, GH#129)
    Maintenance:
    - Remove dead Perl 5.6 TODOs and convert 5.8 TODO to SKIP (GH#129)
    - Add comprehensive implicit type resolution test suite (GH#137)
    - Update MANIFEST to include all unit tests
    - Clean up test names to remove unnecessary numbering


author: Paul Howarth <paul@city-fan.org> - 1.41-1
changelog:
  - Update to 1.41
    Bug Fixes:
    - Fix float parsing on -Dusequadmath perls: use Perl's Atof() instead of
      strtod() so that floats like -3.14 are not corrupted by double-precision
      rounding artifacts (GH#140, GH#141)


author: Paul Howarth <paul@city-fan.org> - 1.42-1
changelog:
  - Update to 1.42
    Bug Fixes:
    - Fix: Replace strtok() with strpbrk() and fix sign-compare warnings in
      perl_syck.h (GH#145)
    - Fix: Terminate plain scalars at document boundaries --- and ... (GH#150)
    - Fix: Skip %TAG and %YAML directives in document header (GH#151)
    - Fix: Plug SV leak when eval_pv croaks on bad perl/code blocks (GH#153)
    - Fix: Allow non-specific tag '!' before block scalars (GH#27, GH#102)
    - Fix: Remove spurious %type <nodeId> for indent_open in gram.y
      (GH#157, GH#158)
    - Fix: Use modern bison %define api.prefix directive (GH#159, GH#160)
    Improvements:
    - Implement YAML merge key (<<) support (GH#149)
    Maintenance:
    - Remove dead Perl 5.6/5.8 version guards from test files (GH#146)
    - Add YAML 1.0 spec compliance audit and coverage tests (GH#148)
    - Add comprehensive round-trip tests for YAML 1.0 spec features (GH#152)
    - Remove unneeded TODO in t/json-basic.t (GH#154)
    - Add regex Dump/Load/round-trip tests to perl tag scheme (GH#155)
    - Do not require a .y file to build YAML::Syck; add brew support for bison
    - Don't ship docs/ directory in tarball


author: Paul Howarth <paul@city-fan.org> - 1.43-1
changelog:
  - Update to 1.43
    Bug Fixes:
    - Fix: Prevent resource leaks on croak/early-return paths in Dump (GH#161)
    - Fix: Prevent output SV leaks on croak in Dump/DumpFile callers (GH#163)
    - Fix: Load() in list context returns empty list for empty/undef input; also
      applies to LoadBytes and LoadUTF8 (GH#164, GH#165)
    - Fix: DumpCode serializes prototype string instead of code body (GH#168)
    - Fix: Memory leak in !perl/scalar Load - newRV_inc should be newRV_noinc
      (GH#170)
    - Fix: Add pTHX_ to SAVEDESTRUCTOR_X callback for threaded Perl
      (GH#175, GH#176)
    - Fix: Add TODO guard for eval_pv leak on Perl < 5.14 (GH#179, GH#180)
    - Fix: Negative hex and octal values parsed as 0 with ImplicitTyping (GH#183)
    - Fix: Negative int#base60 values produce unsigned wraparound (GH#185)
    Improvements:
    - Modernize META_MERGE for CPANTS compliance (GH#162)
    - Fix hash table size handling and remove compile warnings in syck_st (GH#174)
    Maintenance:
    - Restore TODO guard for Dump code leak test on Perl < 5.26 (GH#167)
    - Resolve 2010 TODO in perl_json_postprocess with test coverage (GH#166)
    - CI: Upgrade actions to resolve Node.js 20 deprecation warnings (GH#177)


author: Paul Howarth <paul@city-fan.org> - 1.44-1
changelog:
  - Update to 1.44
    Bug Fixes:
    - Fix: Positive hex and octal values parsed as 0 with ImplicitTyping (GH#187)
    - Fix: Resolve uintptr_t redefinition error on Win64 MinGW (GH#186)


author: Paul Howarth <paul@city-fan.org> - 1.45-1
changelog:
  - Update to 1.45
    Bug Fixes:
    - Fix: Use syck_base64_free() to fix Windows "Free to wrong pool" crash in
      base64 encode/decode buffers; also plugs a memory leak (GH#189)
    - Fix: Clear type tag on blessed scalar alias early-return so the stale tag
      no longer leaks onto the next emitted item (GH#193, GH#194, rhbz#2459200)
    - Fix: Negative float#base60 values produce wrong results; strip sign before
      accumulating and avoid negative zero for portable stringification (GH#191)
    - Fix: Prevent memory leaks when Load/LoadJSON croak on parse errors (GH#192)
    Maintenance:
    - Test: Add coverage for SortKeys and JSON MaxDepth (GH#188)
    - Test: Add error handling coverage for LoadFile/DumpFile (GH#190)
    - Update README


author: Paul Howarth <paul@city-fan.org> - 1.3.8b-4
changelog:
  - Fix RADIUS Message-Authenticator verification in mod_radius
    - https://github.com/proftpd/proftpd/issues/1840
    - https://bugzilla.redhat.com/show_bug.cgi?id=2325448


author: Paul Howarth <paul@city-fan.org> - 1.3.8c-1
changelog:
  - Update to 1.3.8c
    - Using FTPS after upgrading from 1.3.8a to 1.3.8b lead to crash (GH#1770)
    - Bad handling of lack of extended attributes lead to SFTP out of memory
      error (GH#1785)
    - mod_sftp_sql logged "header value too long" due to unexpected key header
      text (GH#1529)
    - SSH ECDSA host key algorithms were not used as expected despite configuring
      appropriate key (GH#1839)
    - RADIUS Message-Authenticator verification failed with ProFTPD mod_radius
      (GH#1840)
    - Supplemental group inheritance granted unintended access to GID 0 due to
      lack of supplemental groups from mod_sql (GH#1830)


author: Paul Howarth <paul@city-fan.org> - 1.3.8c-2
changelog:
  - Avoid NULL pointer dereferences in mod_ls (CVE-2024-57392)
    - https://github.com/proftpd/proftpd/issues/1866


author: Paul Howarth <paul@city-fan.org> - 1.3.8d-1
changelog:
  - Update to 1.3.8d
    - Use of HideNoAccess for SFTP sessions can lead to segfault and/or
      unexpected behaviour (GH#1855)
    - SFTP channel allocations can lead to high memory utilization over time
      (GH#1876)
    - Avoid NULL pointer dereferences in mod_ls (GH#1866, CVE-2024-57392)


author: Paul Howarth <paul@city-fan.org> - 1.3.8d-2
changelog:
  - Fix potential SQL injection via mod_sql (CVE-2026-42167)
    - https://github.com/proftpd/proftpd/issues/2052


author: Robert Scheck <robert@fedoraproject.org> 13.0.2-4
changelog:
  - Use 'systemctl try-reload-or-restart' in logrotate postrotate
    script (#2371331, thanks to Marcos Mello)
  - Do not use removed /etc/pki/tls/certs/ca-bundle.crt bundle file
    for Fedora 43 >= and RHEL >= 11


author: Tom Callaway <spot@fedoraproject.org> - 13.0.4-2
changelog:
  - rebuild for lua 5.5
  - apply upstream fix for configure
  - make a new patch to actually support lua 5.5


author: Mattias Ellert <mattias.ellert@physics.uu.se> - 6.38.00-4
changelog:
  - Exclude tests for Fedora 43+ on s390x that fail due to hardware
    acceleration in the zlib-ng library.


author: Mikel Olasagasti Uranga <mikel@olasagasti.info> - 1.70.2-1
changelog:
  - Update to 1.70.2 - Closes rhbz#2254045 rhbz#2336979 rhbz#2337234
    rhbz#2341265 rhbz#2348838 rhbz#2350844 rhbz#2352327 rhbz#2354433
    rhbz#2360615 rhbz#2360653


author: Orion Poplawski <orion@nwra.com> - 7.0.9-2
changelog:
  - Re-install SELinux module in %posttrans to address "upgrade" from zabbixA.B
    to zabbixX.Y in one transaction


