libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 0bfdd8d71ab43b0aa0b880503a651d58e112ef98
parent 641d2e97c99776570f2cfbe57d0daf127d12cc43
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 30 Jul 2026 17:46:29 +0200

releasing v1.0.9

Diffstat:
MChangeLog | 9+++++++++
MNEWS | 8++++++++
Mconfigure.ac | 4++--
Mpo/libmicrohttpd.pot | 400++++++++++++++++++++++++++++++++++++++++---------------------------------------
Rsrc/fuzz/corpus/known-findings/K15-fuzz_eventloop-stop-with-queued-connection.bin -> src/fuzz/corpus/known-findings/K15-stop-with-queued.bin | 0
Rsrc/fuzz/corpus/known-findings/K9-fuzz_postprocessor-nested-boundary-leak.bin -> src/fuzz/corpus/known-findings/K9-pp-nested-boundary-leak.bin | 0
Msrc/include/microhttpd.h | 2+-
7 files changed, 222 insertions(+), 201 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,12 @@ +Thu Jul 30 05:32:00 PM CEST 2026 + Enfocing a minimal size on the PSK. + Fix support for red zones in memorypool. + Fix rare over-writing of HTTP version string with network data + after parsing header. + Fix rare crash from adding connection manually followed by + immediate daemon shutdown. + Releasing GNU libmicrohttpd 1.0.9. -CG + Tue Jul 28 06:12:03 PM CEST 2026 Fixing additional vulnerabilities inspired by reviewing the code for similar issues like the ones reported by A. Ramos; diff --git a/NEWS b/NEWS @@ -1,3 +1,11 @@ +Thu Jul 30 05:34:18 PM CEST 2026 +Released GNU libmicrohttpd 1.0.9. + + This is a bugfix release, fixing minor vulnerabilities + and expanding the test suite. + + -- Christian Grothoff + Tue Jul 28 06:13:26 PM CEST 2026 Released GNU libmicrohttpd 1.0.8. diff --git a/configure.ac b/configure.ac @@ -23,7 +23,7 @@ # AC_PREREQ([2.64]) LT_PREREQ([2.4.0]) -AC_INIT([GNU libmicrohttpd],[1.0.8],[libmicrohttpd@gnu.org]) +AC_INIT([GNU libmicrohttpd],[1.0.9],[libmicrohttpd@gnu.org]) AC_CONFIG_AUX_DIR([build-aux]) MHD_AUX_DIR='build-aux' # Must be set to the same value as in the previous line AC_CONFIG_HEADERS([MHD_config.h]) @@ -31,7 +31,7 @@ AC_CONFIG_MACRO_DIR([m4]) m4_pattern_forbid([^_?MHD_[A-Z_]+_CC_])dnl LIB_VERSION_CURRENT=74 -LIB_VERSION_REVISION=6 +LIB_VERSION_REVISION=7 LIB_VERSION_AGE=62 AC_SUBST([LIB_VERSION_CURRENT]) AC_SUBST([LIB_VERSION_REVISION]) diff --git a/po/libmicrohttpd.pot b/po/libmicrohttpd.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: GNU libmicrohttpd 1.0.8\n" +"Project-Id-Version: GNU libmicrohttpd 1.0.9\n" "Report-Msgid-Bugs-To: libmicrohttpd@gnu.org\n" -"POT-Creation-Date: 2026-07-29 00:02+0200\n" +"POT-Creation-Date: 2026-07-30 17:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -62,8 +62,8 @@ msgid "Wrong error code value" msgstr "" #: src/microhttpd/connection.c:1403 src/microhttpd/connection.c:1422 -#: src/microhttpd/daemon.c:3338 src/microhttpd/daemon.c:4165 -#: src/microhttpd/daemon.c:9135 +#: src/microhttpd/daemon.c:3360 src/microhttpd/daemon.c:4187 +#: src/microhttpd/daemon.c:9157 msgid "Failed to remove FD from epoll set.\n" msgstr "" @@ -144,8 +144,8 @@ msgstr "" msgid "Invalid TLS state value.\n" msgstr "" -#: src/microhttpd/connection.c:3878 src/microhttpd/connection.c:6899 -#: src/microhttpd/connection.c:6997 src/microhttpd/connection.c:7596 +#: src/microhttpd/connection.c:3878 src/microhttpd/connection.c:6909 +#: src/microhttpd/connection.c:7007 src/microhttpd/connection.c:7606 #, c-format msgid "In function %s handling connection at state: %s\n" msgstr "" @@ -309,181 +309,181 @@ msgstr "" msgid "%<PRIu64> %s lines without colons has been skipped.\n" msgstr "" -#: src/microhttpd/connection.c:6848 +#: src/microhttpd/connection.c:6858 msgid "Socket has been disconnected when reading request.\n" msgstr "" -#: src/microhttpd/connection.c:6860 +#: src/microhttpd/connection.c:6870 #, c-format msgid "Connection socket is closed when reading request due to the error: %s\n" msgstr "" -#: src/microhttpd/connection.c:6878 +#: src/microhttpd/connection.c:6888 msgid "Connection was closed by remote side with incomplete request.\n" msgstr "" -#: src/microhttpd/connection.c:7024 +#: src/microhttpd/connection.c:7034 #, c-format msgid "Failed to send data in request for %s.\n" msgstr "" -#: src/microhttpd/connection.c:7033 +#: src/microhttpd/connection.c:7043 #, c-format msgid "Sent 100 continue response: `%.*s'\n" msgstr "" -#: src/microhttpd/connection.c:7110 +#: src/microhttpd/connection.c:7120 #, c-format msgid "" "Failed to send the response headers for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:7176 +#: src/microhttpd/connection.c:7186 msgid "Data offset exceeds limit.\n" msgstr "" -#: src/microhttpd/connection.c:7186 +#: src/microhttpd/connection.c:7196 #, c-format msgid "Sent %d-byte DATA response: `%.*s'\n" msgstr "" -#: src/microhttpd/connection.c:7203 +#: src/microhttpd/connection.c:7213 #, c-format msgid "Failed to send the response body for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:7235 +#: src/microhttpd/connection.c:7245 #, c-format msgid "" "Failed to send the chunked response body for the request for `%s'. Error: " "%s\n" msgstr "" -#: src/microhttpd/connection.c:7271 +#: src/microhttpd/connection.c:7281 #, c-format msgid "Failed to send the footers for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:7300 +#: src/microhttpd/connection.c:7310 msgid "Internal error.\n" msgstr "" -#: src/microhttpd/connection.c:7339 +#: src/microhttpd/connection.c:7349 #, c-format msgid "Detected system clock %u milliseconds jump back.\n" msgstr "" -#: src/microhttpd/connection.c:7346 +#: src/microhttpd/connection.c:7356 #, c-format msgid "Detected too large system clock %<PRIu64> milliseconds jump back.\n" msgstr "" -#: src/microhttpd/connection.c:7428 +#: src/microhttpd/connection.c:7438 msgid "" "Failed to signal end of connection via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/connection.c:7742 +#: src/microhttpd/connection.c:7752 msgid "Closing connection (failed to create response header).\n" msgstr "" -#: src/microhttpd/connection.c:7876 +#: src/microhttpd/connection.c:7886 msgid "Closing connection (failed to create response footer)." msgstr "" -#: src/microhttpd/connection.c:7987 src/microhttpd/daemon.c:3043 -#: src/microhttpd/daemon.c:5625 src/microhttpd/daemon.c:5659 -#: src/microhttpd/daemon.c:7569 src/microhttpd/daemon.c:7588 +#: src/microhttpd/connection.c:7997 src/microhttpd/daemon.c:3065 +#: src/microhttpd/daemon.c:5647 src/microhttpd/daemon.c:5681 +#: src/microhttpd/daemon.c:7591 src/microhttpd/daemon.c:7610 #: src/microhttpd/response.c:2078 src/microhttpd/response.c:2104 #, c-format msgid "Call to epoll_ctl failed: %s\n" msgstr "" -#: src/microhttpd/connection.c:8151 src/microhttpd/daemon.c:6794 +#: src/microhttpd/connection.c:8161 src/microhttpd/daemon.c:6816 #, c-format msgid "" "The specified connection timeout (%u) is too large. Maximum allowed value " "(%<PRIu64>) will be used instead.\n" msgstr "" -#: src/microhttpd/connection.c:8267 +#: src/microhttpd/connection.c:8277 msgid "Attempted to queue response on wrong thread!\n" msgstr "" -#: src/microhttpd/connection.c:8291 +#: src/microhttpd/connection.c:8300 msgid "" "Attempted 'upgrade' connection on daemon without MHD_ALLOW_UPGRADE option!\n" msgstr "" -#: src/microhttpd/connection.c:8300 +#: src/microhttpd/connection.c:8309 msgid "Application used invalid status code for 'upgrade' response!\n" msgstr "" -#: src/microhttpd/connection.c:8309 +#: src/microhttpd/connection.c:8318 msgid "Application used invalid response without \"Connection\" header!\n" msgstr "" -#: src/microhttpd/connection.c:8323 +#: src/microhttpd/connection.c:8336 msgid "" "Application used invalid response without \"upgrade\" token in " "\"Connection\" header!\n" msgstr "" -#: src/microhttpd/connection.c:8333 +#: src/microhttpd/connection.c:8346 msgid "Connection \"Upgrade\" can be used only with HTTP/1.1 connections!\n" msgstr "" -#: src/microhttpd/connection.c:8354 +#: src/microhttpd/connection.c:8367 msgid "" "Connection cannot be upgraded: it has already been marked as \"must close\" " "while the request was being parsed.\n" msgstr "" -#: src/microhttpd/connection.c:8369 +#: src/microhttpd/connection.c:8382 msgid "" "Application used status code 101 \"Switching Protocols\" with non-'upgrade' " "response!\n" msgstr "" -#: src/microhttpd/connection.c:8377 +#: src/microhttpd/connection.c:8390 msgid "" "Application used status code 101 \"Switching Protocols\", but this MHD was " "built without \"Upgrade\" support!\n" msgstr "" -#: src/microhttpd/connection.c:8388 +#: src/microhttpd/connection.c:8401 #, c-format msgid "" "Refused wrong status code (%u). HTTP requires three digits status code!\n" msgstr "" -#: src/microhttpd/connection.c:8400 +#: src/microhttpd/connection.c:8413 #, c-format msgid "" "Wrong status code (%u) refused. HTTP/1.0 clients do not support 1xx status " "codes!\n" msgstr "" -#: src/microhttpd/connection.c:8411 +#: src/microhttpd/connection.c:8424 #, c-format msgid "" "Wrong status code (%u) refused. HTTP/1.0 reply mode does not support 1xx " "status codes!\n" msgstr "" -#: src/microhttpd/connection.c:8423 +#: src/microhttpd/connection.c:8436 #, c-format msgid "" "Successful (%u) response code cannot be used to answer \"CONNECT\" request!\n" msgstr "" -#: src/microhttpd/connection.c:8435 +#: src/microhttpd/connection.c:8448 msgid "" "HEAD-only response cannot be used when the request requires reply body to be " "sent!\n" msgstr "" -#: src/microhttpd/connection.c:8446 +#: src/microhttpd/connection.c:8459 msgid "" "The response has application-defined \"Content-Length\" header. The reply to " "the request will be not HTTP-compliant and may result in hung connection or " @@ -545,7 +545,7 @@ msgid "" "unsupported.\n" msgstr "" -#: src/microhttpd/daemon.c:1261 src/microhttpd/daemon.c:4755 +#: src/microhttpd/daemon.c:1261 src/microhttpd/daemon.c:4777 #, c-format msgid "" "%s() called with fd_setsize (%u) less than value set by " @@ -553,7 +553,7 @@ msgid "" "MHD_OPTION_APP_FD_SETSIZE with the correct value.\n" msgstr "" -#: src/microhttpd/daemon.c:1270 src/microhttpd/daemon.c:4764 +#: src/microhttpd/daemon.c:1270 src/microhttpd/daemon.c:4786 #, c-format msgid "" "%s() called with fd_setsize (%u) less than FD_SETSIZE used by MHD (%d). Some " @@ -561,14 +561,14 @@ msgid "" "option.\n" msgstr "" -#: src/microhttpd/daemon.c:1283 src/microhttpd/daemon.c:4777 +#: src/microhttpd/daemon.c:1283 src/microhttpd/daemon.c:4799 #, c-format msgid "" "%s() called with fd_setsize (%u) less than fixed FD_SETSIZE value (%d) used " "on the platform.\n" msgstr "" -#: src/microhttpd/daemon.c:1532 src/microhttpd/daemon.c:9264 +#: src/microhttpd/daemon.c:1532 src/microhttpd/daemon.c:9293 msgid "" "Initiated daemon shutdown while \"upgraded\" connection was not closed.\n" msgstr "" @@ -630,116 +630,120 @@ msgid "" "Failed to signal thread termination via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:2511 +#: src/microhttpd/daemon.c:2521 msgid "Internal server error. This should be impossible.\n" msgstr "" -#: src/microhttpd/daemon.c:2521 src/microhttpd/daemon.c:2560 +#: src/microhttpd/daemon.c:2531 src/microhttpd/daemon.c:2582 msgid "PSK not supported by this server.\n" msgstr "" -#: src/microhttpd/daemon.c:2535 +#: src/microhttpd/daemon.c:2545 +msgid "PSK authentication failed: PSK too short.\n" +msgstr "" + +#: src/microhttpd/daemon.c:2554 msgid "PSK authentication failed: PSK too long.\n" msgstr "" -#: src/microhttpd/daemon.c:2544 +#: src/microhttpd/daemon.c:2566 msgid "PSK authentication failed: gnutls_malloc failed to allocate memory.\n" msgstr "" -#: src/microhttpd/daemon.c:2608 +#: src/microhttpd/daemon.c:2630 #, c-format msgid "Accepted connection on socket %d.\n" msgstr "" -#: src/microhttpd/daemon.c:2620 src/microhttpd/daemon.c:2961 +#: src/microhttpd/daemon.c:2642 src/microhttpd/daemon.c:2983 msgid "Server reached connection limit. Closing inbound connection.\n" msgstr "" -#: src/microhttpd/daemon.c:2639 +#: src/microhttpd/daemon.c:2661 msgid "Connection rejected by application. Closing connection.\n" msgstr "" -#: src/microhttpd/daemon.c:2657 src/microhttpd/daemon.c:2686 -#: src/microhttpd/daemon.c:2944 src/microhttpd/daemon.c:5094 -#: src/microhttpd/daemon.c:6681 +#: src/microhttpd/daemon.c:2679 src/microhttpd/daemon.c:2708 +#: src/microhttpd/daemon.c:2966 src/microhttpd/daemon.c:5116 +#: src/microhttpd/daemon.c:6703 #, c-format msgid "Error allocating memory: %s\n" msgstr "" -#: src/microhttpd/daemon.c:2764 +#: src/microhttpd/daemon.c:2786 msgid "Failed to initialise TLS session.\n" msgstr "" -#: src/microhttpd/daemon.c:2788 +#: src/microhttpd/daemon.c:2810 msgid "Failed to set ALPN protocols.\n" msgstr "" -#: src/microhttpd/daemon.c:2818 +#: src/microhttpd/daemon.c:2840 #, c-format msgid "Failed to setup TLS credentials: unknown credential type %d.\n" msgstr "" -#: src/microhttpd/daemon.c:2830 +#: src/microhttpd/daemon.c:2852 msgid "Unknown credential type.\n" msgstr "" -#: src/microhttpd/daemon.c:2858 +#: src/microhttpd/daemon.c:2880 msgid "TLS connection on non-TLS daemon.\n" msgstr "" -#: src/microhttpd/daemon.c:3005 src/microhttpd/daemon.c:8879 +#: src/microhttpd/daemon.c:3027 src/microhttpd/daemon.c:8901 msgid "" "Failed to create a new thread because it would have exceeded the system " "limit on the number of threads or no system resources available.\n" msgstr "" -#: src/microhttpd/daemon.c:3011 +#: src/microhttpd/daemon.c:3033 #, c-format msgid "Failed to create a thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3164 +#: src/microhttpd/daemon.c:3186 #, c-format msgid "" "New connection socket descriptor (%d) is not less than FD_SETSIZE (%d).\n" msgstr "" -#: src/microhttpd/daemon.c:3181 +#: src/microhttpd/daemon.c:3203 msgid "Epoll mode supports only non-blocking sockets\n" msgstr "" -#: src/microhttpd/daemon.c:3218 +#: src/microhttpd/daemon.c:3240 msgid "" "Failed to signal new connection via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:3263 +#: src/microhttpd/daemon.c:3285 msgid "Failed to start serving new connection.\n" msgstr "" -#: src/microhttpd/daemon.c:3391 +#: src/microhttpd/daemon.c:3413 msgid "Cannot suspend connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n" msgstr "" -#: src/microhttpd/daemon.c:3398 +#: src/microhttpd/daemon.c:3420 msgid "Error: connection scheduled for \"upgrade\" cannot be suspended.\n" msgstr "" -#: src/microhttpd/daemon.c:3431 +#: src/microhttpd/daemon.c:3453 msgid "Cannot resume connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n" msgstr "" -#: src/microhttpd/daemon.c:3446 src/microhttpd/daemon.c:3482 +#: src/microhttpd/daemon.c:3468 src/microhttpd/daemon.c:3504 msgid "Failed to signal resume via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:3623 +#: src/microhttpd/daemon.c:3645 msgid "" "Failed to signal resume of connection via inter-thread communication " "channel.\n" msgstr "" -#: src/microhttpd/daemon.c:3679 +#: src/microhttpd/daemon.c:3701 msgid "" "MHD_add_connection() has been called for daemon started without MHD_USE_ITC " "flag.\n" @@ -747,128 +751,128 @@ msgid "" "already added sockets.\n" msgstr "" -#: src/microhttpd/daemon.c:3693 src/microhttpd/daemon.c:3719 +#: src/microhttpd/daemon.c:3715 src/microhttpd/daemon.c:3741 msgid "MHD_add_connection() has been called with incorrect 'addrlen' value.\n" msgstr "" -#: src/microhttpd/daemon.c:3704 src/microhttpd/daemon.c:3730 +#: src/microhttpd/daemon.c:3726 src/microhttpd/daemon.c:3752 msgid "" "MHD_add_connection() has been called with non-zero value of 'sa_len' member " "of 'struct sockaddr' which does not match 'sa_family'.\n" msgstr "" -#: src/microhttpd/daemon.c:3750 +#: src/microhttpd/daemon.c:3772 #, c-format msgid "Failed to set nonblocking mode on new client socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3770 +#: src/microhttpd/daemon.c:3792 #, c-format msgid "Failed to suppress SIGPIPE on new client socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3794 +#: src/microhttpd/daemon.c:3816 msgid "Failed to set noninheritable mode on new client socket.\n" msgstr "" -#: src/microhttpd/daemon.c:3956 +#: src/microhttpd/daemon.c:3978 #, c-format msgid "Error accepting connection: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3969 +#: src/microhttpd/daemon.c:3991 msgid "" "Hit process or system resource limit at FIRST connection. This is really bad " "as there is no sane way to proceed. Will try busy waiting for system " "resources to become magically available.\n" msgstr "" -#: src/microhttpd/daemon.c:3986 +#: src/microhttpd/daemon.c:4008 #, c-format msgid "" "Hit process or system resource limit at %u connections, temporarily " "suspending accept(). Consider setting a lower MHD_OPTION_CONNECTION_LIMIT.\n" msgstr "" -#: src/microhttpd/daemon.c:4002 +#: src/microhttpd/daemon.c:4024 msgid "" "Accepted socket has zero-length address. Processing the new socket as a " "socket with unknown type.\n" msgstr "" -#: src/microhttpd/daemon.c:4015 +#: src/microhttpd/daemon.c:4037 msgid "" "Accepted socket address is larger than expected by system headers. " "Processing the new socket as a socket with unknown type.\n" msgstr "" -#: src/microhttpd/daemon.c:4027 +#: src/microhttpd/daemon.c:4049 #, c-format msgid "Failed to set nonblocking mode on incoming connection socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:4041 +#: src/microhttpd/daemon.c:4063 msgid "Failed to set noninheritable mode on incoming connection socket.\n" msgstr "" -#: src/microhttpd/daemon.c:4053 +#: src/microhttpd/daemon.c:4075 #, c-format msgid "Failed to suppress SIGPIPE on incoming connection socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:4075 +#: src/microhttpd/daemon.c:4097 #, c-format msgid "Accepted connection on socket %d\n" msgstr "" -#: src/microhttpd/daemon.c:4121 src/microhttpd/daemon.c:9306 -#: src/microhttpd/daemon.c:9338 src/microhttpd/daemon.c:9371 -#: src/microhttpd/daemon.c:9485 +#: src/microhttpd/daemon.c:4143 src/microhttpd/daemon.c:9335 +#: src/microhttpd/daemon.c:9367 src/microhttpd/daemon.c:9400 +#: src/microhttpd/daemon.c:9514 msgid "Failed to join a thread.\n" msgstr "" -#: src/microhttpd/daemon.c:4301 +#: src/microhttpd/daemon.c:4323 msgid "Illegal call to MHD_get_timeout.\n" msgstr "" -#: src/microhttpd/daemon.c:4739 +#: src/microhttpd/daemon.c:4761 msgid "" "MHD_run_from_select() called with except_fd_set set to NULL. Such behavior " "is deprecated.\n" msgstr "" -#: src/microhttpd/daemon.c:4909 +#: src/microhttpd/daemon.c:4931 msgid "Could not obtain daemon fdsets.\n" msgstr "" -#: src/microhttpd/daemon.c:4928 +#: src/microhttpd/daemon.c:4950 msgid "Could not add control inter-thread communication channel FD to fdset.\n" msgstr "" -#: src/microhttpd/daemon.c:4954 +#: src/microhttpd/daemon.c:4976 msgid "Could not add listen socket to fdset.\n" msgstr "" -#: src/microhttpd/daemon.c:5022 +#: src/microhttpd/daemon.c:5044 #, c-format msgid "select failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5171 src/microhttpd/daemon.c:5328 +#: src/microhttpd/daemon.c:5193 src/microhttpd/daemon.c:5350 #, c-format msgid "poll failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5470 src/microhttpd/daemon.c:5720 +#: src/microhttpd/daemon.c:5492 src/microhttpd/daemon.c:5742 #, c-format msgid "Call to epoll_wait failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5681 src/microhttpd/daemon.c:6284 +#: src/microhttpd/daemon.c:5703 src/microhttpd/daemon.c:6306 msgid "Failed to remove listen FD from epoll set.\n" msgstr "" -#: src/microhttpd/daemon.c:6003 +#: src/microhttpd/daemon.c:6025 #, c-format msgid "" "MHD_run()/MHD_run_wait() called for daemon started with " @@ -878,456 +882,456 @@ msgid "" "MHD_OPTION_APP_FD_SETSIZE option.\n" msgstr "" -#: src/microhttpd/daemon.c:6104 +#: src/microhttpd/daemon.c:6126 #, c-format msgid "Failed to block SIGPIPE on daemon thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6167 +#: src/microhttpd/daemon.c:6189 msgid "The URL encoding is broken.\n" msgstr "" -#: src/microhttpd/daemon.c:6256 +#: src/microhttpd/daemon.c:6278 msgid "Using MHD_quiesce_daemon in this mode requires MHD_USE_ITC.\n" msgstr "" -#: src/microhttpd/daemon.c:6292 +#: src/microhttpd/daemon.c:6314 msgid "Failed to signal quiesce via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:6322 +#: src/microhttpd/daemon.c:6344 msgid "failed to signal quiesce via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:6486 +#: src/microhttpd/daemon.c:6508 msgid "" "GnuTLS priorities have been initialised with @LIBMICROHTTPD application-" "specific system-wide configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6492 +#: src/microhttpd/daemon.c:6514 msgid "" "GnuTLS priorities have been initialised with @SYSTEM system-wide " "configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6498 +#: src/microhttpd/daemon.c:6520 msgid "" "GnuTLS priorities have been initialised with GnuTLS default configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6504 +#: src/microhttpd/daemon.c:6526 msgid "GnuTLS priorities have been initialised with NORMAL configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6517 +#: src/microhttpd/daemon.c:6539 #, c-format msgid "Failed to set GnuTLS priorities. Last error: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6595 +#: src/microhttpd/daemon.c:6617 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to @LIBMICROHTTPD application-specific system-wide " "configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6602 +#: src/microhttpd/daemon.c:6624 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to @SYSTEM system-wide configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6609 +#: src/microhttpd/daemon.c:6631 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to GnuTLS default configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6616 +#: src/microhttpd/daemon.c:6638 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to NORMAL configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6630 +#: src/microhttpd/daemon.c:6652 #, c-format msgid "" "Failed to set GnuTLS priorities. Last error: %s. The problematic part starts " "at: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6746 +#: src/microhttpd/daemon.c:6768 msgid "" "Warning: specified MHD_OPTION_CONNECTION_MEMORY_LIMIT value is too small and " "rounded up to 64.\n" msgstr "" -#: src/microhttpd/daemon.c:6772 +#: src/microhttpd/daemon.c:6794 msgid "" "Warning: specified MHD_OPTION_CONNECTION_MEMORY_INCREMENT value is too large " "and rounded down to 1/4 of MHD_OPTION_CONNECTION_MEMORY_LIMIT.\n" msgstr "" -#: src/microhttpd/daemon.c:6858 +#: src/microhttpd/daemon.c:6880 msgid "" "Warning: value \"1\", specified as the thread pool size, is ignored. Thread " "pool is not used.\n" msgstr "" -#: src/microhttpd/daemon.c:6872 +#: src/microhttpd/daemon.c:6894 #, c-format msgid "Specified thread pool size (%u) too big.\n" msgstr "" -#: src/microhttpd/daemon.c:6884 +#: src/microhttpd/daemon.c:6906 msgid "" "MHD_OPTION_THREAD_POOL_SIZE option is specified but " "MHD_USE_INTERNAL_POLLING_THREAD flag is not specified.\n" msgstr "" -#: src/microhttpd/daemon.c:6893 +#: src/microhttpd/daemon.c:6915 msgid "" "Both MHD_OPTION_THREAD_POOL_SIZE option and MHD_USE_THREAD_PER_CONNECTION " "flag are specified.\n" msgstr "" -#: src/microhttpd/daemon.c:6910 src/microhttpd/daemon.c:6923 -#: src/microhttpd/daemon.c:6936 src/microhttpd/daemon.c:6949 -#: src/microhttpd/daemon.c:7001 src/microhttpd/daemon.c:7047 -#: src/microhttpd/daemon.c:7068 src/microhttpd/daemon.c:7090 -#: src/microhttpd/daemon.c:7426 +#: src/microhttpd/daemon.c:6932 src/microhttpd/daemon.c:6945 +#: src/microhttpd/daemon.c:6958 src/microhttpd/daemon.c:6971 +#: src/microhttpd/daemon.c:7023 src/microhttpd/daemon.c:7069 +#: src/microhttpd/daemon.c:7090 src/microhttpd/daemon.c:7112 +#: src/microhttpd/daemon.c:7448 #, c-format msgid "MHD HTTPS option %d passed to MHD but MHD_USE_TLS not set.\n" msgstr "" -#: src/microhttpd/daemon.c:6970 +#: src/microhttpd/daemon.c:6992 msgid "Error initializing DH parameters.\n" msgstr "" -#: src/microhttpd/daemon.c:6980 +#: src/microhttpd/daemon.c:7002 msgid "Diffie-Hellman parameters string too long.\n" msgstr "" -#: src/microhttpd/daemon.c:6991 +#: src/microhttpd/daemon.c:7013 msgid "Bad Diffie-Hellman parameters format.\n" msgstr "" -#: src/microhttpd/daemon.c:7026 +#: src/microhttpd/daemon.c:7048 #, c-format msgid "" "Setting priorities to '%s' failed: %s The problematic part starts at: %s\n" msgstr "" -#: src/microhttpd/daemon.c:7056 +#: src/microhttpd/daemon.c:7078 msgid "" "MHD_OPTION_HTTPS_CERT_CALLBACK requires building MHD with GnuTLS >= 3.0.\n" msgstr "" -#: src/microhttpd/daemon.c:7078 +#: src/microhttpd/daemon.c:7100 msgid "" "MHD_OPTION_HTTPS_CERT_CALLBACK2 requires building MHD with GnuTLS >= 3.6.3.\n" msgstr "" -#: src/microhttpd/daemon.c:7149 +#: src/microhttpd/daemon.c:7171 msgid "Digest Auth is disabled for this build of GNU libmicrohttpd.\n" msgstr "" -#: src/microhttpd/daemon.c:7167 +#: src/microhttpd/daemon.c:7189 msgid "" "MHD_OPTION_EXTERNAL_LOGGER is not the first option specified for the daemon. " "Some messages may be printed by the standard MHD logger.\n" msgstr "" -#: src/microhttpd/daemon.c:7192 +#: src/microhttpd/daemon.c:7214 msgid "TCP fastopen is not supported on this platform.\n" msgstr "" -#: src/microhttpd/daemon.c:7216 +#: src/microhttpd/daemon.c:7238 msgid "" "Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behaviour is " "specified by MHD_OPTION_STRICT_CLIENT.\n" msgstr "" -#: src/microhttpd/daemon.c:7229 +#: src/microhttpd/daemon.c:7251 msgid "" "Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behaviour is " "specified by MHD_OPTION_CLIENT_DISCIPLINE_LVL.\n" msgstr "" -#: src/microhttpd/daemon.c:7400 +#: src/microhttpd/daemon.c:7422 #, c-format msgid "MHD HTTPS option %d passed to MHD compiled without GNUtls >= 3.\n" msgstr "" -#: src/microhttpd/daemon.c:7450 +#: src/microhttpd/daemon.c:7472 #, c-format msgid "MHD HTTPS option %d passed to MHD compiled without HTTPS support.\n" msgstr "" -#: src/microhttpd/daemon.c:7460 +#: src/microhttpd/daemon.c:7482 #, c-format msgid "Invalid option %d! (Did you terminate the list with MHD_OPTION_END?).\n" msgstr "" -#: src/microhttpd/daemon.c:7490 +#: src/microhttpd/daemon.c:7512 #, c-format msgid "Call to epoll_create1 failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:7500 +#: src/microhttpd/daemon.c:7522 msgid "Failed to set noninheritable mode on epoll FD.\n" msgstr "" -#: src/microhttpd/daemon.c:7542 +#: src/microhttpd/daemon.c:7564 msgid "The epoll FD is too large to be used with fd_set.\n" msgstr "" -#: src/microhttpd/daemon.c:7624 +#: src/microhttpd/daemon.c:7646 #, c-format msgid "MHD_OPTION_APP_FD_SETSIZE value (%d) is not positive.\n" msgstr "" -#: src/microhttpd/daemon.c:7633 +#: src/microhttpd/daemon.c:7655 msgid "" "MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with " "MHD_USE_INTERNAL_POLLING_THREAD.\n" msgstr "" -#: src/microhttpd/daemon.c:7642 +#: src/microhttpd/daemon.c:7664 msgid "" "MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with MHD_USE_POLL.\n" msgstr "" -#: src/microhttpd/daemon.c:7654 +#: src/microhttpd/daemon.c:7676 #, c-format msgid "" "MHD_OPTION_APP_FD_SETSIZE value (%d) does not match the platform FD_SETSIZE " "value (%d) and this platform does not support overriding of FD_SETSIZE.\n" msgstr "" -#: src/microhttpd/daemon.c:7679 +#: src/microhttpd/daemon.c:7701 msgid "The value provided for MHD_OPTION_LISTEN_SOCKET is invalid.\n" msgstr "" -#: src/microhttpd/daemon.c:7689 +#: src/microhttpd/daemon.c:7711 msgid "" "MHD_OPTION_LISTEN_SOCKET specified for daemon with MHD_USE_NO_LISTEN_SOCKET " "flag set.\n" msgstr "" -#: src/microhttpd/daemon.c:7719 +#: src/microhttpd/daemon.c:7741 msgid "" "MHD_OPTION_LISTEN_SOCKET cannot be used together with " "MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR.\n" msgstr "" -#: src/microhttpd/daemon.c:7728 +#: src/microhttpd/daemon.c:7750 msgid "" "MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR specified for daemon with " "MHD_USE_NO_LISTEN_SOCKET flag set.\n" msgstr "" -#: src/microhttpd/daemon.c:8010 +#: src/microhttpd/daemon.c:8032 msgid "Failed to initialise GnuTLS priorities.\n" msgstr "" -#: src/microhttpd/daemon.c:8023 +#: src/microhttpd/daemon.c:8045 msgid "" "Warning: MHD_USE_THREAD_PER_CONNECTION must be used only with " "MHD_USE_INTERNAL_POLLING_THREAD. Flag MHD_USE_INTERNAL_POLLING_THREAD was " "added. Consider setting MHD_USE_INTERNAL_POLLING_THREAD explicitly.\n" msgstr "" -#: src/microhttpd/daemon.c:8039 +#: src/microhttpd/daemon.c:8061 msgid "Using debug build of libmicrohttpd.\n" msgstr "" -#: src/microhttpd/daemon.c:8053 +#: src/microhttpd/daemon.c:8075 #, c-format msgid "Failed to create inter-thread communication channel: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8068 +#: src/microhttpd/daemon.c:8090 msgid "" "file descriptor for inter-thread communication channel exceeds maximum " "value.\n" msgstr "" -#: src/microhttpd/daemon.c:8107 +#: src/microhttpd/daemon.c:8129 msgid "Specified value for NC_SIZE too large.\n" msgstr "" -#: src/microhttpd/daemon.c:8123 +#: src/microhttpd/daemon.c:8145 #, c-format msgid "Failed to allocate memory for nonce-nc map: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8141 +#: src/microhttpd/daemon.c:8163 msgid "MHD failed to initialize nonce-nc mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8162 +#: src/microhttpd/daemon.c:8184 msgid "MHD thread polling only works with MHD_USE_INTERNAL_POLLING_THREAD.\n" msgstr "" -#: src/microhttpd/daemon.c:8192 +#: src/microhttpd/daemon.c:8214 msgid "" "MHD_USE_IPv6 is enabled, but 'struct sockaddr *' specified for " "MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR is not IPv6 address.\n" msgstr "" -#: src/microhttpd/daemon.c:8211 src/microhttpd/daemon.c:8256 +#: src/microhttpd/daemon.c:8233 src/microhttpd/daemon.c:8278 msgid "The size specified for MHD_OPTION_SOCK_ADDR_LEN option is wrong.\n" msgstr "" -#: src/microhttpd/daemon.c:8223 src/microhttpd/daemon.c:8268 +#: src/microhttpd/daemon.c:8245 src/microhttpd/daemon.c:8290 msgid "" "The value of 'struct sockaddr.sa_len' provided via MHD_OPTION_SOCK_ADDR_LEN " "option is not zero and does not match 'sa_family' value of the same " "structure.\n" msgstr "" -#: src/microhttpd/daemon.c:8306 +#: src/microhttpd/daemon.c:8328 msgid "" "The 'sa_family' of the 'struct sockaddr' provided via MHD_OPTION_SOCK_ADDR " "option is not supported.\n" msgstr "" -#: src/microhttpd/daemon.c:8383 +#: src/microhttpd/daemon.c:8405 #, c-format msgid "Failed to create socket for listening: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8394 src/microhttpd/daemon.c:8587 +#: src/microhttpd/daemon.c:8416 src/microhttpd/daemon.c:8609 #, c-format msgid "" "Listen socket descriptor (%d) is not less than daemon FD_SETSIZE value " "(%d).\n" msgstr "" -#: src/microhttpd/daemon.c:8417 src/microhttpd/daemon.c:8436 -#: src/microhttpd/daemon.c:8459 src/microhttpd/daemon.c:8497 -#: src/microhttpd/daemon.c:8530 src/microhttpd/daemon.c:8562 +#: src/microhttpd/daemon.c:8439 src/microhttpd/daemon.c:8458 +#: src/microhttpd/daemon.c:8481 src/microhttpd/daemon.c:8519 +#: src/microhttpd/daemon.c:8552 src/microhttpd/daemon.c:8584 #, c-format msgid "setsockopt failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8469 +#: src/microhttpd/daemon.c:8491 msgid "Cannot allow listening address reuse: SO_REUSEPORT not defined.\n" msgstr "" -#: src/microhttpd/daemon.c:8505 +#: src/microhttpd/daemon.c:8527 msgid "" "Cannot disallow listening address reuse: SO_EXCLUSIVEADDRUSE not defined.\n" msgstr "" -#: src/microhttpd/daemon.c:8543 +#: src/microhttpd/daemon.c:8565 #, c-format msgid "Failed to bind to port %u: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8573 +#: src/microhttpd/daemon.c:8595 #, c-format msgid "Failed to listen for connections: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8674 +#: src/microhttpd/daemon.c:8696 #, c-format msgid "Failed to get listen port number: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8684 +#: src/microhttpd/daemon.c:8706 msgid "" "Failed to get listen port number (`struct sockaddr_storage` too small!?).\n" msgstr "" -#: src/microhttpd/daemon.c:8731 +#: src/microhttpd/daemon.c:8753 msgid "Listen socket has unknown address family!\n" msgstr "" -#: src/microhttpd/daemon.c:8748 +#: src/microhttpd/daemon.c:8770 #, c-format msgid "Failed to set nonblocking mode on listening socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8784 +#: src/microhttpd/daemon.c:8806 msgid "" "Combining MHD_USE_THREAD_PER_CONNECTION and MHD_USE_EPOLL is not supported.\n" msgstr "" -#: src/microhttpd/daemon.c:8799 +#: src/microhttpd/daemon.c:8821 msgid "MHD failed to initialize IP connection limit mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8812 +#: src/microhttpd/daemon.c:8834 msgid "Failed to initialize TLS support.\n" msgstr "" -#: src/microhttpd/daemon.c:8842 src/microhttpd/daemon.c:8931 -#: src/microhttpd/daemon.c:9065 +#: src/microhttpd/daemon.c:8864 src/microhttpd/daemon.c:8953 +#: src/microhttpd/daemon.c:9087 msgid "Failed to initialise internal lists mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8851 src/microhttpd/daemon.c:8861 -#: src/microhttpd/daemon.c:8939 src/microhttpd/daemon.c:8948 -#: src/microhttpd/daemon.c:9074 src/microhttpd/daemon.c:9084 +#: src/microhttpd/daemon.c:8873 src/microhttpd/daemon.c:8883 +#: src/microhttpd/daemon.c:8961 src/microhttpd/daemon.c:8970 +#: src/microhttpd/daemon.c:9096 src/microhttpd/daemon.c:9106 msgid "Failed to initialise mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8885 +#: src/microhttpd/daemon.c:8907 #, c-format msgid "Failed to create listen thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8961 +#: src/microhttpd/daemon.c:8983 #, c-format msgid "Failed to create worker inter-thread communication channel: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8975 +#: src/microhttpd/daemon.c:8997 msgid "" "File descriptor for worker inter-thread communication channel exceeds " "maximum value.\n" msgstr "" -#: src/microhttpd/daemon.c:9038 +#: src/microhttpd/daemon.c:9060 msgid "" "Failed to create a new pool thread because it would have exceeded the system " "limit on the number of threads or no system resources available.\n" msgstr "" -#: src/microhttpd/daemon.c:9044 +#: src/microhttpd/daemon.c:9066 #, c-format msgid "Failed to create pool thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:9250 src/microhttpd/daemon.c:9283 +#: src/microhttpd/daemon.c:9279 src/microhttpd/daemon.c:9312 msgid "MHD_stop_daemon() called while we have suspended connections.\n" msgstr "" -#: src/microhttpd/daemon.c:9322 src/microhttpd/daemon.c:9428 -#: src/microhttpd/daemon.c:9466 +#: src/microhttpd/daemon.c:9351 src/microhttpd/daemon.c:9457 +#: src/microhttpd/daemon.c:9495 msgid "Failed to signal shutdown via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:9396 +#: src/microhttpd/daemon.c:9425 msgid "MHD_stop_daemon() was called twice." msgstr "" -#: src/microhttpd/daemon.c:9986 +#: src/microhttpd/daemon.c:10015 msgid "Failed to initialize winsock.\n" msgstr "" -#: src/microhttpd/daemon.c:9988 +#: src/microhttpd/daemon.c:10017 msgid "Winsock version 2.2 is not available.\n" msgstr "" -#: src/microhttpd/daemon.c:9997 src/microhttpd/daemon.c:10001 +#: src/microhttpd/daemon.c:10026 src/microhttpd/daemon.c:10030 msgid "Failed to initialise multithreading in libgcrypt.\n" msgstr "" -#: src/microhttpd/daemon.c:10007 +#: src/microhttpd/daemon.c:10036 msgid "libgcrypt is too old. MHD was compiled for libgcrypt 1.6.0 or newer.\n" msgstr "" diff --git a/src/fuzz/corpus/known-findings/K15-fuzz_eventloop-stop-with-queued-connection.bin b/src/fuzz/corpus/known-findings/K15-stop-with-queued.bin Binary files differ. diff --git a/src/fuzz/corpus/known-findings/K9-fuzz_postprocessor-nested-boundary-leak.bin b/src/fuzz/corpus/known-findings/K9-pp-nested-boundary-leak.bin Binary files differ. diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h @@ -101,7 +101,7 @@ MHD_C_DECLRATIONS_START_HERE_ * they are parsed as decimal numbers. * Example: 0x01093001 = 1.9.30-1. */ -#define MHD_VERSION 0x01000800 +#define MHD_VERSION 0x01000900 /* If generic headers don't work on your platform, include headers which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',