From: Christopher Faulet Date: Thu, 26 Sep 2019 14:19:13 +0000 (+0200) Subject: BUG/MINOR: mux-h2: Use the dummy error when decoding headers for a closed stream X-Git-Tag: v2.1-dev2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea7a7781a94addb9fb18ef8064c96d73fe5add3d;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h2: Use the dummy error when decoding headers for a closed stream Since the commit 6884aa3e ("BUG/MAJOR: mux-h2: Handle HEADERS frames received after a RST_STREAM frame"), HEADERS frames received for an unknown or already closed stream are decoded. Once decoded, an error is reported for the stream. But because it is a dummy stream (h2_closed_stream), its state cannot be changed. So instead, we must return the dummy error stream (h2_error_stream). This patch must be backported to 2.0 and 1.9. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index ef046203a5..b59c7fa63f 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -2518,7 +2518,7 @@ static struct h2s *h2c_bck_handle_headers(struct h2c *h2c, struct h2s *h2s) * the data and send another RST. */ error = h2c_decode_headers(h2c, &rxbuf, &flags, &body_len); - h2s_error(h2s, H2_ERR_STREAM_CLOSED); + h2s = (struct h2s*)h2_error_stream; h2c->st0 = H2_CS_FRAME_E; goto send_rst; }