Mercurial > hg > nginx
changeset 7563:a7e8f953408e
Fixed "return" with discarding invalid chunked body.
When ngx_http_discard_request_body() call was added to ngx_http_send_response(),
there were no return codes other than NGX_OK and NGX_HTTP_INTERNAL_SERVER_ERROR.
Now it can also return NGX_HTTP_BAD_REQUEST, but ngx_http_send_response() still
incorrectly transforms it to NGX_HTTP_INTERNAL_SERVER_ERROR.
The fix is to propagate ngx_http_discard_request_body() errors.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 04 Sep 2019 13:33:51 +0300 |
parents | 52b5ee64fe11 |
children | 29b2dc731503 |
files | src/http/ngx_http_core_module.c |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c Tue Sep 03 17:26:56 2019 +0300 +++ b/src/http/ngx_http_core_module.c Wed Sep 04 13:33:51 2019 +0300 @@ -1660,8 +1660,10 @@ ngx_buf_t *b; ngx_chain_t out; - if (ngx_http_discard_request_body(r) != NGX_OK) { - return NGX_HTTP_INTERNAL_SERVER_ERROR; + rc = ngx_http_discard_request_body(r); + + if (rc != NGX_OK) { + return rc; } r->headers_out.status = status;