mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-25 04:09:31 +03:00
POST parser: do not try to process buffer leftovers if request is discarded
This commit is contained in:
@@ -2911,7 +2911,8 @@ mhd_stream_process_post_finish (struct MHD_Connection *restrict c)
|
||||
const struct MHD_UploadAction *act;
|
||||
bool state_changed;
|
||||
|
||||
if (MHD_POST_PARSE_RES_OK == p_data->parse_result)
|
||||
if ((MHD_POST_PARSE_RES_OK == p_data->parse_result) &&
|
||||
! c->discard_request)
|
||||
{
|
||||
// TODO: implement processing in the connection buffer
|
||||
if (check_post_leftovers (c))
|
||||
|
||||
@@ -3262,6 +3262,8 @@ process_request_chunked_body (struct MHD_Connection *restrict c)
|
||||
mhd_assert ((0 == cntn_data_ready) || \
|
||||
(MHD_POST_PARSE_RES_OK != c->rq.u_proc.post.parse_result) || \
|
||||
(MHD_CONNECTION_BODY_RECEIVING != c->state));
|
||||
if (MHD_CONNECTION_BODY_RECEIVING != c->state)
|
||||
c->discard_request = true;
|
||||
c->rq.cntn.recv_size += size_provided;
|
||||
}
|
||||
else
|
||||
@@ -3394,6 +3396,9 @@ process_request_nonchunked_body (struct MHD_Connection *restrict c)
|
||||
mhd_assert ((0 == size_provided) || \
|
||||
(MHD_POST_PARSE_RES_OK != c->rq.u_proc.post.parse_result) || \
|
||||
(MHD_CONNECTION_BODY_RECEIVING != c->state));
|
||||
if (MHD_CONNECTION_BODY_RECEIVING != c->state)
|
||||
c->discard_request = true;
|
||||
|
||||
read_buf_reuse = true;
|
||||
c->rq.cntn.proc_size += cntn_data_ready;
|
||||
if (c->rq.cntn.recv_size == c->rq.cntn.cntn_size)
|
||||
|
||||
Reference in New Issue
Block a user