From: Willy Tarreau Date: Sun, 2 Dec 2018 11:28:01 +0000 (+0100) Subject: BUG/MEDIUM: mux-h2: remove the HTX EOM block on H2 response headers X-Git-Tag: v1.9-dev9~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c5753aedf7e5d059b311104eb1081fe126a3e793;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: mux-h2: remove the HTX EOM block on H2 response headers If we decided to emit the end of stream flag on the H2 response headers frame, we must remove the EOM block from the HTX stream, otherwise it will lead to an extra DATA frame being sent with the ES flag and will violate the protocol. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index bd329cc126..bab4c851df 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -3762,6 +3762,9 @@ static size_t h2s_htx_frt_make_resp_headers(struct h2s *h2s, struct htx *htx) ret += htx_get_blksz(blk); blk = htx_remove_blk(htx, blk); } + + if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM) + htx_remove_blk(htx, blk_end); end: return ret; full: