]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: quic: NULL pointer dereferences when building post handshake frames.
authorFrédéric Lécaille <flecaille@haproxy.com>
Wed, 6 Jan 2021 11:12:39 +0000 (12:12 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 6 Jan 2021 12:59:05 +0000 (13:59 +0100)
The second one was detected by cppcheck contrary to the first one.
Fixes issue #1032.
Thank you to Ilya for having reported this.

src/xprt_quic.c

index c20d877c3930bc04491bd16f5f3ee419caf2ec7c..7232c65757ef08735210b20e708fc052ea8e06aa 100644 (file)
@@ -1871,6 +1871,9 @@ static int quic_build_post_handshake_frames(struct quic_conn *conn)
        /* Only servers must send a HANDSHAKE_DONE frame. */
        if (!objt_server(conn->conn->target)) {
                frm = pool_alloc(pool_head_quic_frame);
+               if (!frm)
+                       return 0;
+
                frm->type = QUIC_FT_HANDSHAKE_DONE;
                LIST_ADDQ(&conn->tx.frms_to_send, &frm->list);
        }
@@ -1879,7 +1882,6 @@ static int quic_build_post_handshake_frames(struct quic_conn *conn)
                struct quic_connection_id *cid;
 
                frm = pool_alloc(pool_head_quic_frame);
-               memset(frm, 0, sizeof *frm);
                cid = new_quic_cid(&conn->cids, i);
                if (!frm || !cid)
                        goto err;