From 3b7112aa1db487083497c1b03897f0924809a6bd Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 9 Sep 2025 15:46:30 +0200 Subject: [PATCH] BUG/MINOR: mux-h2: Remove H2_CF_DEM_DFULL flags when the demux buffer is reset This only happens when a connection error is detected or when the H2 connection is in ERR/ERR2 state. The demux buffer is explicitly reset. In that case, it is important to remove the flag reporting this buffer as full. It is probably worth to backport this patch to 3.2. But it is not mandatory on older versions because it does not fix any known issue. --- src/mux_h2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 457df083f..f6a653396 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -5069,8 +5069,10 @@ static int h2_process(struct h2c *h2c) if (h2c->glitches != prev_glitches && !(h2c->flags & H2_CF_IS_BACK)) session_add_glitch_ctr(h2c->conn->owner, h2c->glitches - prev_glitches); - if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) + if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) { b_reset(&h2c->dbuf); + h2c->flags &= ~H2_CF_DEM_DFULL; + } } was_blocked |= !!(h2c->flags & H2_CF_DEM_MROOM); h2_send(h2c);