BUILD: quic: fix wrong potential NULL dereference
GCC warns about a possible NULL dereference when requeuing a datagram on
the connection socket. This happens due to a MT_LIST_POP to retrieve a
rxbuf instance.
In fact, this can never be NULL there is enough rxbuf allocated for each
thread. Once a thread has finished to work with it, it must always
reappend it.
This issue was introduced with the following patch :
commit b34d353968db7f646e83871cb6b21a246af84ddc
BUG/MEDIUM: quic: consume contig space on requeue datagram
As such, it must be backported in every version with the above commit.
This should fix the github CI compilation error.
(cherry picked from commit f40a72a7fffe5a926d8a01547fa19a686fe591b5)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
diff --git a/src/quic_sock.c b/src/quic_sock.c
index c2a984e..7c9eca7 100644
--- a/src/quic_sock.c
+++ b/src/quic_sock.c
@@ -738,6 +738,7 @@
TRACE_STATE("datagram for other connection on quic-conn socket, requeue it", QUIC_EV_CONN_RCV, qc);
rxbuf = MT_LIST_POP(&l->rx.rxbuf_list, typeof(rxbuf), rxbuf_el);
+ ALREADY_CHECKED(rxbuf);
cspace = b_contig_space(&rxbuf->buf);
tmp_dgram = quic_rxbuf_purge_dgrams(rxbuf);