BUG/MEDIUM: mux-h2: Don't send RST_STREAM frame for streams with no ID
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 15 Nov 2024 09:25:20 +0000 (10:25 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 22 Nov 2024 14:33:00 +0000 (15:33 +0100)
commit1b18a4cad1642f7d7bf333df209d73f82296c0ac
treea5efd7f241b40f65107893170faceb145b9b82ac
parent33b0ca4440a8f09fe42ff34f27e7113552053ae1
BUG/MEDIUM: mux-h2: Don't send RST_STREAM frame for streams with no ID

On server side, the H2 stream is first created with an unassigned ID (ID ==
0). Its ID is assigned when the request is emitted, before formatting the
HEADERS frame. However, the session may be aborted during that stage. We
must take care to not emit RST_STREAM frame for this stream, because it does
not exist yet for the server.

It is especially important to do so because, depending on the timing, it may
also happens before the H2 PREFACE was sent.

This patch must be backported to all stable versions. It is related to issue

(cherry picked from commit f065d0009888c394e5f93dfdaa2ae79958b2c2e2)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
src/mux_h2.c