From 85131f91bf726039acf49c6fe5333df0a6aaa959 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Fri, 26 Jul 2024 15:24:35 +0200 Subject: [PATCH] BUG/MEDIUM: quic: fix invalid conn reject with CONNECTION_REFUSED quic-initial rules were implemented just recently. For some actions, a new flags field was added in quic_dgram structure. This is used to report the result of the rules execution. However, this flags field was left uninitialized. Depending on its value, it may close the connection to be wrongly rejected via CONNECTION_REFUSED. Fix this by properly set flags value to 0. No need to backport. --- src/quic_sock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/quic_sock.c b/src/quic_sock.c index 4049fc9b5..a89439649 100644 --- a/src/quic_sock.c +++ b/src/quic_sock.c @@ -295,6 +295,7 @@ static int quic_lstnr_dgram_dispatch(unsigned char *pos, size_t len, void *owner dgram->saddr = *saddr; dgram->daddr = *daddr; dgram->qc = NULL; + dgram->flags = 0; /* Attached datagram to its quic_receiver_buf and quic_dghdlrs. */ LIST_APPEND(dgrams, &dgram->recv_list); @@ -859,6 +860,7 @@ int qc_rcv_buf(struct quic_conn *qc) new_dgram->saddr = saddr; new_dgram->daddr = daddr; new_dgram->qc = NULL; /* set later via quic_dgram_parse() */ + new_dgram->flags = 0; TRACE_DEVEL("read datagram", QUIC_EV_CONN_RCV, qc, new_dgram); -- 2.47.3