]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: quic: Don't try to use hystart if not implemented master
authorOlivier Houchard <ohouchard@haproxy.com>
Sun, 14 Dec 2025 15:10:21 +0000 (16:10 +0100)
committerOlivier Houchard <cognet@ci0.org>
Sun, 14 Dec 2025 15:46:12 +0000 (16:46 +0100)
Not every CC algos implement hystart, so only call the method if it is
actually there. Failure to do so will cause crashes if hystart is on,
and the algo doesn't implement it.

This should fix github issue #3218

This should be backported up to 3.0.

src/quic_tx.c

index 7f5647e813a0d59b2460df3f89638850451df1c6..ac331ae944ea7ba15aa169865bd71a6d6de4673b 100644 (file)
@@ -439,7 +439,8 @@ static int qc_send_ppkts(struct buffer *buf, struct quic_conn *qc)
                        }
                        qc->path->in_flight += pkt->in_flight_len;
                        pkt->pktns->tx.in_flight += pkt->in_flight_len;
-                       if (quic_tune_test(QUIC_TUNE_FB_CC_HYSTART, qc) && pkt->pktns == qc->apktns)
+                       if (quic_tune_test(QUIC_TUNE_FB_CC_HYSTART, qc) && pkt->pktns == qc->apktns &&
+                           cc->algo->hystart_start_round != NULL)
                                cc->algo->hystart_start_round(cc, pkt->pn_node.key);
                        if (pkt->in_flight_len)
                                qc_set_timer(qc);