From: Christopher Faulet Date: Tue, 18 Jun 2019 10:22:38 +0000 (+0200) Subject: BUG/MEDIUM: mux-h2: Reset padlen when several frames are demux X-Git-Tag: v2.1-dev1~72 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dd2a5620d594523cd515a629e105a9a2b64345bb;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: mux-h2: Reset padlen when several frames are demux In the function h2_process_demux(), if several frames are parsed, the padding length must be reset between each frame. Otherwise we may wrongly think a frame has a padding block because the previous one was padded. This patch must be backported to 2.0 and 1.9. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index d02168df5a..c06d5d68ed 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -2316,6 +2316,7 @@ static void h2_process_demux(struct h2c *h2c) break; } + padlen = 0; if (h2_ft_bit(hdr.ft) & H2_FT_PADDED_MASK && hdr.ff & H2_F_PADDED) { /* If the frame is padded (HEADERS, PUSH_PROMISE or DATA), * we read the pad length and drop it from the remaining