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.
This commit is contained in:
Maxim Dounin 2014-03-17 15:34:36 +04:00
parent 6e2c0a113f
commit 135a8680ac
1 changed files with 11 additions and 0 deletions

View File

@ -1195,6 +1195,10 @@ ngx_http_fastcgi_reinit_request(ngx_http_request_t *r)
f->fastcgi_stdout = 0;
f->large_stderr = 0;
if (f->split_parts) {
f->split_parts->nelts = 0;
}
r->state = 0;
return NGX_OK;
@ -1475,6 +1479,13 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
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';