]> git.kaiwu.me - haproxy.git/commit
BUG/MEDIUM: h3: reject standalone FIN on invalid request/response
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 12 Nov 2026 14:40:59 +0000 (15:40 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 12 Nov 2026 16:40:22 +0000 (17:40 +0100)
commit026b8cdcd8d59c3d3b1d180e588dd648ec26041f
tree9852fcbde0dbdb635d3d6e197b27efa77084afa1
parent44340ca85d498eef457a114b51710e5bb35d5a9d
BUG/MEDIUM: h3: reject standalone FIN on invalid request/response

HTTP/3 parser has a special code path to handle a standalone FIN.
However for a request stream there was no check to ensure that a valid
request/response was received before reporting the closure.

This would result in an empty HTX buffer with EOM set. On the MUX level,
QCS instance would remain accounted in QCC <nb_hreq> counter, which
could result in unnecessary memory consumption.

Fix this rejecting a request stream closed with a standalone FIN without
a valid request or response received. The stream read is aborted and
write is reset using error code H3_REQUEST_INCOMPLETE or
H3_MESSAGE_ERROR depending on the proxy side. This allows to quickly
release the QCS instance.

This must be backported up to 2.6.
src/h3.c