# HG changeset patch # User Igor Sysoev # Date 1169556923 0 # Node ID f303d33f39270a2bc2a864cdf5c2ed2cc5fcc6aa # Parent bd4202f92581d25bd2b683cabe594d49f98b0946 delete temporary file for incomplete small request body diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c --- a/src/http/ngx_http_request_body.c +++ b/src/http/ngx_http_request_body.c @@ -32,6 +32,7 @@ ngx_http_read_client_request_body(ngx_ht { size_t preread; ssize_t size; + ngx_int_t rc; ngx_buf_t *b; ngx_chain_t *cl, **next; ngx_temp_file_t *tf; @@ -167,7 +168,14 @@ ngx_http_read_client_request_body(ngx_ht r->read_event_handler = ngx_http_read_client_request_body_handler; - return ngx_http_do_read_client_request_body(r); + rc = ngx_http_do_read_client_request_body(r); + + if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { + ngx_http_finalize_request_body(r, rc); + return NGX_DONE; + } + + return rc; } next = &rb->bufs->next; @@ -227,7 +235,14 @@ ngx_http_read_client_request_body(ngx_ht r->read_event_handler = ngx_http_read_client_request_body_handler; - return ngx_http_do_read_client_request_body(r); + rc = ngx_http_do_read_client_request_body(r); + + if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { + ngx_http_finalize_request_body(r, rc); + return NGX_DONE; + } + + return rc; }