BUG/MEDIUM: mux-h1: Remove H1C_F_WAIT_NEXT_REQ flag on a next request

When an idle H1 connection starts to process an new request, we must take
care to remove H1C_F_WAIT_NEXT_REQ flag. This flag is used to know an idle
H1 connection has already processed at least one request and is waiting for
a next one, but nothing was received yet.

Keeping this flag leads to a crash because some running H1 connections may
be erroneously released on a soft-stop. Indeed, only idle or closed
connections must be released.

This bug was reported into #1903. It is 2.7-specific. No backport needed.
This commit is contained in:
Christopher Faulet 2022-11-23 15:58:59 +01:00
parent 881cce9f13
commit 4427ea7f04
1 changed files with 1 additions and 1 deletions

View File

@ -750,7 +750,7 @@ static struct h1s *h1s_new(struct h1c *h1c)
if (h1c->flags & H1C_F_WAIT_NEXT_REQ)
h1s->flags |= H1S_F_NOT_FIRST;
h1s->h1c->state = H1_CS_EMBRYONIC;
h1s->h1c->flags &= ~H1C_F_WAIT_NEXT_REQ;
TRACE_LEAVE(H1_EV_H1S_NEW, h1c->conn, h1s);
return h1s;