mirror of
https://github.com/nginx/nginx.git
synced 2024-12-19 05:33:52 -06:00
FastCGI: skip special bufs in buffered request body chain.
This prevents forming empty records out of such buffers. Particularly it fixes double end-of-stream records with chunked transfer encoding, or when HTTP/2 is used and the END_STREAM flag has been sent without data. In both cases there is an empty buffer at the end of the request body chain with the "last_buf" flag set. The canonical libfcgi, as well as php implementation, tolerates such records, while the HHVM parser is more strict and drops the connection (ticket #950).
This commit is contained in:
parent
400d42437c
commit
4c1b9fef65
@ -1177,6 +1177,11 @@ ngx_http_fastcgi_create_request(ngx_http_request_t *r)
|
||||
|
||||
while (body) {
|
||||
|
||||
if (ngx_buf_special(body->buf)) {
|
||||
body = body->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (body->buf->in_file) {
|
||||
file_pos = body->buf->file_pos;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user