From 113c7a2794a86e658faf80b000a5d849f30e299e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 24 Jan 2019 09:36:53 +0100 Subject: [PATCH] BUG/MINOR: mux-h2: CONTINUATION in closed state must always return GOAWAY Since we now support CONTINUATION frames, we must take care of properly aborting the connection when they are sent on a closed stream. By default we'd get a stream error which is not sufficient since the compression context is modified and unrecoverable. More info in this discussion : https://mailarchive.ietf.org/arch/msg/httpbisa/azZ1jiOkvM3xrpH4jX-Q72KoH00 This needs to be backported to 1.9 and possibly to 1.8 (less important there). --- src/mux_h2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 4e128d038..0a8238dd8 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -2270,7 +2270,7 @@ static void h2_process_demux(struct h2c *h2c) * Some frames have to be silently ignored as well. */ if (h2s->st == H2_SS_CLOSED && h2c->dsi) { - if (h2c->dft == H2_FT_HEADERS || h2c->dft == H2_FT_PUSH_PROMISE) { + if (h2_ft_bit(h2c->dft) & H2_FT_HDR_MASK) { /* #5.1.1: The identifier of a newly * established stream MUST be numerically * greater than all streams that the initiating