]> git.kaiwu.me - haproxy.git/commit
BUG/MINOR: mux_quic: prevent multiple STOP_SENDING emission per stream quic-interop
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 1 Jul 2026 12:36:45 +0000 (14:36 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 3 Jul 2026 07:27:21 +0000 (09:27 +0200)
commit364d16030a2c2715f28e8b345ab83a788b89d23a
tree260e81eafa20434beaadd2a0d40e131a9a33287a
parent7f416252b524d12865f390d123586df322de9d67
BUG/MINOR: mux_quic: prevent multiple STOP_SENDING emission per stream

A QUIC stream may be aborted to ignore future data read. This also
prepares a STOP_SENDING frame to instruct the peer to close its write
channel.

This capability is exposed via qcc_abort_stream_read() which should be
guarded against multiple invokation for a single stream. This was
checked via QC_SF_TO_STOP_SENDING flag. However, this flag is resetted
once STOP_SENDING frame is emitted. Thus in theory it could be possible
to emit several STOP_SENDING for a single stream.

This patch improves this by using QC_SF_READ_ABORTED flag check. This
flag is set during qcc_abort_stream_read() and never removed even after
STOP_SENDING frame is emitted.

This bug was never encountered in a real situation. However, this patch
is necessary to definitely guarantee that it cannot occur.

This should be backported up to 2.8.
src/mux_quic.c