Mercurial > hg > nginx
changeset 5604:22d485944c20
FastCGI: f->split_parts reset on request start.
Additionally, make sure to check for errors from ngx_http_parse_header_line()
call after joining saved parts. There shouldn't be any errors, though
check may help to catch bugs like missing f->split_parts reset.
Reported by Lucas Molas.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 17 Mar 2014 15:34:36 +0400 |
parents | b2b5b1b74129 |
children | 3a72b1805c52 |
files | src/http/modules/ngx_http_fastcgi_module.c |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_fastcgi_module.c Fri Mar 07 15:17:38 2014 +0400 +++ b/src/http/modules/ngx_http_fastcgi_module.c Mon Mar 17 15:34:36 2014 +0400 @@ -1208,6 +1208,10 @@ f->fastcgi_stdout = 0; f->large_stderr = 0; + if (f->split_parts) { + f->split_parts->nelts = 0; + } + r->state = 0; return NGX_OK; @@ -1488,6 +1492,13 @@ rc = ngx_http_parse_header_line(r, &buf, 1); + if (rc != NGX_OK) { + ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, + "invalid header after joining " + "FastCGI records"); + return NGX_ERROR; + } + h->key.len = r->header_name_end - r->header_name_start; h->key.data = r->header_name_start; h->key.data[h->key.len] = '\0';