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:
| M | src/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':