]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: quic: Possible crash in "show quic" dumping packet number spaces
authorFrédéric Lécaille <flecaille@haproxy.com>
Mon, 3 Jul 2023 15:16:31 +0000 (17:16 +0200)
committerFrédéric Lécaille <flecaille@haproxy.com>
Mon, 3 Jul 2023 15:20:55 +0000 (17:20 +0200)
This bug was introduced by this commit:

    MEDIUM: quic: Release encryption levels and packet number spaces asap

Add some checks before derefencing pointers to packet number spaces objects
to dump them from "show quic" command.

No backport needed.

src/quic_conn.c

index 24686e082f1707c08431d39dcc754b1571e2b967..5964dda1ada4439324c3d430b5bcab2babf5675d 100644 (file)
@@ -8808,14 +8808,22 @@ static void dump_quic_full(struct show_quic_ctx *ctx, struct quic_conn *qc)
 
        /* Packet number spaces information */
        pktns = qc->ipktns;
-       chunk_appendf(&trash, "  [initl]             rx.ackrng=%-6zu tx.inflight=%-6zu",
-                     pktns->rx.arngs.sz, pktns->tx.in_flight);
+       if (pktns) {
+               chunk_appendf(&trash, "  [initl]             rx.ackrng=%-6zu tx.inflight=%-6zu",
+                             pktns->rx.arngs.sz, pktns->tx.in_flight);
+       }
+
        pktns = qc->hpktns;
-       chunk_appendf(&trash, "           [hndshk] rx.ackrng=%-6zu tx.inflight=%-6zu\n",
-                     pktns->rx.arngs.sz, pktns->tx.in_flight);
+       if (pktns) {
+               chunk_appendf(&trash, "           [hndshk] rx.ackrng=%-6zu tx.inflight=%-6zu\n",
+                             pktns->rx.arngs.sz, pktns->tx.in_flight);
+       }
+
        pktns = qc->apktns;
-       chunk_appendf(&trash, "  [01rtt]             rx.ackrng=%-6zu tx.inflight=%-6zu\n",
-                     pktns->rx.arngs.sz, pktns->tx.in_flight);
+       if (pktns) {
+               chunk_appendf(&trash, "  [01rtt]             rx.ackrng=%-6zu tx.inflight=%-6zu\n",
+                             pktns->rx.arngs.sz, pktns->tx.in_flight);
+       }
 
        chunk_appendf(&trash, "  srtt=%-4u rttvar=%-4u rttmin=%-4u ptoc=%-4u cwnd=%-6llu"
                              " mcwnd=%-6llu sentpkts=%-6llu lostpkts=%-6llu\n",