]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mux-fcgi: Set conn state to RECORD_P when skipping the record padding
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 15 Jul 2020 13:55:52 +0000 (15:55 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 15 Jul 2020 13:55:55 +0000 (15:55 +0200)
When the padding of a "stream" record (STDOUT or STDERR) is skipped, we must set
the connection state to RECORD_P. It is especially important if the padding is
not fully received.

This patch must be backported as far as 2.1.

src/mux_fcgi.c

index d1094d9020cbaff58be727f3242ed57a6d065401..efe5d54656a030fb96a2220589244601000ee813 100644 (file)
@@ -2295,6 +2295,7 @@ static int fcgi_strm_handle_stdout(struct fcgi_conn *fconn, struct fcgi_strm *fs
                goto fail;
 
   end_transfer:
+       fconn->state = FCGI_CS_RECORD_P;
        fconn->drl += fconn->drp;
        fconn->drp = 0;
        ret = MIN(b_data(&fconn->dbuf), fconn->drl);
@@ -2379,6 +2380,7 @@ static int fcgi_strm_handle_stderr(struct fcgi_conn *fconn, struct fcgi_strm *fs
                goto fail;
 
   end_transfer:
+       fconn->state = FCGI_CS_RECORD_P;
        fconn->drl += fconn->drp;
        fconn->drp = 0;
        ret = MIN(b_data(&fconn->dbuf), fconn->drl);