From 1e6d8f199c9943eca13dec48e8676377356c81d0 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Mon, 23 Jun 2025 16:52:09 +0200 Subject: [PATCH] BUG/MINOR: quic: wrong QUIC_FT_CONNECTION_CLOSE(0x1c) frame encoding This is an old bug which was there since this commit: MINOR: quic: Avoid zeroing frame structures It seems QUIC_FT_CONNECTION_CLOSE was confused with QUIC_FT_CONNECTION_CLOSE_APP which does not include a "frame type" field. This field was not initialized (so with a random value) which prevent the packet to be built because the packet builder supposes the packet with such frames are very short. Must be backported as far as 2.6. --- src/quic_tx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/quic_tx.c b/src/quic_tx.c index e36bb2fdf..611788b15 100644 --- a/src/quic_tx.c +++ b/src/quic_tx.c @@ -1685,6 +1685,7 @@ static void qc_build_cc_frm(struct quic_conn *qc, struct quic_enc_level *qel, * converting to a CONNECTION_CLOSE of type 0x1c. */ out->type = QUIC_FT_CONNECTION_CLOSE; + out->connection_close.frame_type = 0; out->connection_close.error_code = QC_ERR_APPLICATION_ERROR; out->connection_close.reason_phrase_len = 0; } @@ -1696,6 +1697,7 @@ static void qc_build_cc_frm(struct quic_conn *qc, struct quic_enc_level *qel, } else { out->type = QUIC_FT_CONNECTION_CLOSE; + out->connection_close.frame_type = 0; out->connection_close.error_code = qc->err.code; out->connection_close.reason_phrase_len = 0; }