diff options
Diffstat (limited to 'src/http/ngx_http_request_body.c')
| -rw-r--r-- | src/http/ngx_http_request_body.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c index 2bc63f780..99ac8aad3 100644 --- a/src/http/ngx_http_request_body.c +++ b/src/http/ngx_http_request_body.c @@ -12,7 +12,6 @@ static ngx_int_t ngx_http_do_read_client_request_body(ngx_http_request_t *r); ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r, size_t request_buffer_size) { - ngx_int_t rc; ssize_t size; ngx_hunk_t *h; ngx_chain_t *cl; @@ -143,12 +142,17 @@ static ngx_int_t ngx_http_do_read_client_request_body(ngx_http_request_t *r) } if (n == 0 || n == NGX_ERROR) { + r->closed = 1; return NGX_HTTP_BAD_REQUEST; } r->request_body_hunk->last += n; r->request_body_len -= n; + if (r->request_body_len == 0) { + break; + } + if (r->request_body_hunk->last < r->request_body_hunk->end) { break; } |
