libmicrohttpd

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

commit 45c7e2bc39a1620f2c853bd382175f874aa9f1bc
parent 2106f6f2bb9bda5c56c33eb0f795b54c61b5a933
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Mon,  7 Jun 2021 12:26:28 +0300

MHD_queue_response: check whether provided status code is a three digits code

Diffstat:
Msrc/microhttpd/connection.c | 11+++++++++++
1 file changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c @@ -4234,6 +4234,17 @@ MHD_queue_response (struct MHD_Connection *connection, return MHD_NO; } #endif /* UPGRADE_SUPPORT */ + if ( (100 > (status_code & (~MHD_ICY_FLAG))) || + (999 < (status_code & (~MHD_ICY_FLAG))) ) + { +#ifdef HAVE_MESSAGES + MHD_DLOG (daemon, + _ ("Refused wrong status code (%u). " \ + "HTTP required three digits status code!\n"), + (status_code & (~MHD_ICY_FLAG))); +#endif + return MHD_NO; + } MHD_increment_response_rc (response); connection->response = response; connection->responseCode = status_code;