libmicrohttpd

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

commit bbc57f9386bbd30e21320c59c6b76f91448fab0f
parent ba63b33aea997cdc94b379d29be203f39a32c4b6
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Wed, 15 Sep 2021 13:32:47 +0300

postprocessor: fixed empty key processing

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

diff --git a/src/microhttpd/postprocessor.c b/src/microhttpd/postprocessor.c @@ -521,6 +521,12 @@ post_process_urlencoded (struct MHD_PostProcessor *pp, case '=': /* Case: 'key=' */ end_key = &post_data[poff]; + if ((start_key == end_key) && (0 == pp->buffer_pos)) + { + /* Empty key with value */ + pp->state = PP_Error; + continue; + } poff++; pp->state = PP_ProcessValue; break; @@ -530,6 +536,12 @@ post_process_urlencoded (struct MHD_PostProcessor *pp, mhd_assert (NULL == start_value); mhd_assert (NULL == end_value); poff++; + if ((start_key == end_key) && (0 == pp->buffer_pos)) + { + /* Empty key without value */ + start_key = NULL; + continue; + } pp->state = PP_Callback; break; case '\n':