]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: quic: fix wrong potential NULL dereference
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 4 Aug 2023 13:34:34 +0000 (15:34 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 4 Aug 2023 13:42:34 +0000 (15:42 +0200)
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.

src/quic_sock.c

index 88bcb1a31f4afbc9db5800890c6c39aaa0895697..572a471bf8c74915b329544d86903544d1bbb5f2 100644 (file)
@@ -739,6 +739,7 @@ int qc_rcv_buf(struct quic_conn *qc)
                        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);