MINOR: quic: Add a BUG_ON_HOT() call for too small datagrams

This should be helpful to detect too small datagrams: datagrams
smaller than 1200 bytes, with Initial packets inside.

Must be backported to 2.7.
This commit is contained in:
Frédéric Lécaille 2023-02-20 14:43:55 +01:00
parent 69e7118fe9
commit ceb88b8f46

View File

@ -3523,6 +3523,15 @@ int qc_send_ppkts(struct buffer *buf, struct ssl_sock_ctx *ctx)
time_sent = now_ms;
for (pkt = first_pkt; pkt; pkt = next_pkt) {
/* RFC 9000 14.1 Initial datagram size
* a server MUST expand the payload of all UDP datagrams carrying ack-eliciting
* Initial packets to at least the smallest allowed maximum datagram size of
* 1200 bytes.
*/
BUG_ON_HOT(pkt->type == QUIC_PACKET_TYPE_INITIAL &&
(pkt->flags & QUIC_FL_TX_PACKET_ACK_ELICITING) &&
dglen < QUIC_INITIAL_PACKET_MINLEN);
pkt->time_sent = time_sent;
if (pkt->flags & QUIC_FL_TX_PACKET_ACK_ELICITING) {
pkt->pktns->tx.time_of_last_eliciting = time_sent;