diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2015-03-23 21:09:12 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2015-03-23 21:09:12 +0300 |
commit | d21e644d80ed3a90220ee566e87b10780e027008 (patch) | |
tree | d56f9c72d3fac1372723593c76df43f93667b32d | |
parent | 4df7aa6f92e6c6f70002f72caaef6eb0ba6aea82 (diff) | |
download | nginx-d21e644d80ed3a90220ee566e87b10780e027008.tar.gz nginx-d21e644d80ed3a90220ee566e87b10780e027008.zip |
Request body: free chain links in ngx_http_write_request_body().
-rw-r--r-- | src/http/ngx_http_request_body.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c index 0a07dfa18..18a58d876 100644 --- a/src/http/ngx_http_request_body.c +++ b/src/http/ngx_http_request_body.c @@ -415,7 +415,7 @@ static ngx_int_t ngx_http_write_request_body(ngx_http_request_t *r) { ssize_t n; - ngx_chain_t *cl; + ngx_chain_t *cl, *ln; ngx_temp_file_t *tf; ngx_http_request_body_t *rb; ngx_http_core_loc_conf_t *clcf; @@ -478,8 +478,13 @@ ngx_http_write_request_body(ngx_http_request_t *r) /* mark all buffers as written */ - for (cl = rb->bufs; cl; cl = cl->next) { + for (cl = rb->bufs; cl; /* void */) { + cl->buf->pos = cl->buf->last; + + ln = cl; + cl = cl->next; + ngx_free_chain(r->pool, ln); } rb->bufs = NULL; |