GNU libmicrohttpd 0.9.77 released

Evgeny Grin <[email protected]> Sun, 28 May 2023 19:12:16 +0300
Newsgroups gmane.org.fsf.announce
Message-ID <[email protected]>
Dear all,

I'm very glad to finally announce the new release of GNU libmicrohttpd 
library version 0.9.77.

This is mostly a bugfix release.
This version created by taking patches from the current development 
branch and back-porting them on top of version 0.9.76.
The most notable changes are: some improvements for Digest and Basic 
authorizations, fixed efficiency for TLS upgraded connections, fixed 
processing of folded headers in requests, fixed functionality with 
blocking sockets, improved and fixed internal test-suite.

The more detailed list of the important changes:

API changes:
+ Added new function MHD_get_version_bin().

Improvements and enhancements:
* Digest Auth: changed algorithm identifiers in server generated headers 
from "md5" / "sha-256" to "MD5" / "SHA-256" to better match RFC (while 
clients should use caseless matching).
* Improved Base64 decoding by new implementation with robust input data 
validation checks.
* Improved configure for cross-compiling, for better compatibility with 
POSIX and for better compatibility with the latest compiler versions.
* New internal tests: for Base64 decoding, Basic Auth and folded headers.
* Supported new libcurl API in tests to mute deprecation warnings.
* Supported ARM and ARM64 for VC compilers.

Functionality changes:
* any negative number returned by response data generation callback 
function is treated as an error. Previously negative values except 
predefined error codes could produce undefined behaviour.
* Added handling of "DEBUG" preprocessor macro as an alias of "_DEBUG".

Fixes:
# Fixed functionality with blocking sockets.
# Fixed very inefficient data pumping for upgraded TLS connections.
# Fixed processing of folded headers in the requests.
# Fixed data races when closing upgraded connection.
# Removed duplication of "Connection: upgrade" header.
# Digest auth: fixed thread sync to avoid "stale hash" results.
# Fixed harmless unwanted extra data processing resulting in triggering 
of the assert.
# Fixed tests for LTO.
# Removed removed non-portable functions in examples.
# Fixed delayed call of connection notification callback in 
thread-per-connection mode.
# Fixed Address Sanitizer unpoison of memory when memory pool is 
destroyed. This fixed periodic ASAN error when used for a long time with 
the sanitizer.
# Fixed compiler warnings in library code, examples, tests and configure 
checks.
# New TLS certificates for test-suite: all with SAN fields and SHA-256 hash.
# Tests: fixed tests on Darwin 22.x (Ventura).
# Tests: redesigned one tests group to avoid stress-testing of the OS.


You can download GNU libmicrohttpd from

* https://ftp.gnu.org/gnu/libmicrohttpd/ and all GNU FTP mirrors.
* Our git repository at https://git.gnunet.org/libmicrohttpd.git

Please report bugs to our bugtracker at
https://bugs.gnunet.org/set_project.php?project_id=10.

The documentation (including a reference manual and tutorial) can be
found at https://gnu.org/s/libmicrohttpd.

-- 
Best Wishes,
Evgeny
OpenPGP_0x460A317C3326D2AE.asc (application/pgp-keys, 3.9 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=JMK1
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature (application/pgp-signature, 840 B) - not displayed