From 16ff261633ddae1b86f897ee2c14bd8fdda92401 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Thu, 21 Mar 2019 15:48:46 +0100 Subject: [PATCH] BUG/MEDIUM: mux-h2: Don't bother keeping the h2s if detaching and nothing to send. In h2_detach(), don't bother keeping the h2s even if it was waiting for flow control if we no longer are subscribed for receiving or sending, as nobody will do anything once we can write in the mux, anyway. Failing to do so may lead to h2s being kept opened forever. This should be backported to 1.9. --- 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 116906610..f8b9ecc83 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -3007,7 +3007,7 @@ static void h2_detach(struct conn_stream *cs) */ if (!(cs->conn->flags & CO_FL_ERROR) && (h2c->st0 < H2_CS_ERROR) && - (h2s->flags & (H2_SF_BLK_MBUSY | H2_SF_BLK_MROOM | H2_SF_BLK_MFCTL))) + (h2s->flags & (H2_SF_BLK_MBUSY | H2_SF_BLK_MROOM | H2_SF_BLK_MFCTL)) && (h2s->send_wait || h2s->recv_wait)) return; if ((h2c->flags & H2_CF_DEM_BLOCK_ANY && h2s->id == h2c->dsi) ||