mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 20:46:11 +02:00
BUG/MINOR: mux-fcgi: Handle empty STDERR record
As mentionned in the FastCGI specification, FCGI "streams" are series of non-empty stream records (length != 0), followed by an empty one. It is properly handled for FCGI_STDOUT records, but not for FCGI_STDERR ones. If an empty FCGI_STDERR record is received, the connection is blocked waiting for data which will never come. To fix the bug, when an empty FCGI_STDERR record is received, we drop it, eating the padding if any. This patch should fix the issue #743. It must be backported as far as 2.1.
This commit is contained in:
parent
1bea865811
commit
7f85433a91
@ -2355,7 +2355,7 @@ static int fcgi_strm_handle_stderr(struct fcgi_conn *fconn, struct fcgi_strm *fs
|
||||
dbuf = &fconn->dbuf;
|
||||
|
||||
/* Only padding remains */
|
||||
if (fconn->state == FCGI_CS_RECORD_P)
|
||||
if (fconn->state == FCGI_CS_RECORD_P || !fconn->drl)
|
||||
goto end_transfer;
|
||||
|
||||
if (b_data(dbuf) < (fconn->drl + fconn->drp) &&
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user