mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-29 14:50:59 +01:00
MEDIUM: quic: ensure empty packets are never built
Previously, qc_do_build_pkt() had a special case when an empty packet was generated. In this case, a PADDING frame was inserted. This specific block was removed as padding support was centralized by the previous patch. However, such empty packets have no real purpose, and also are non efficient. Add a BUG_ON() to ensure that caller never invoke qc_do_build_pkt() if there is no data to emit. qc_do_build_pkt() is a tedious function which already had some issues. As such, this change is labelled as MEDIUM, as it is not 100% sure that empty packet case is never encountered during emission.
This commit is contained in:
parent
f2c24ae7f1
commit
e11cd9966e
@ -1937,6 +1937,9 @@ static int qc_do_build_pkt(unsigned char *pos, const unsigned char *end,
|
||||
dglen += 1;
|
||||
}
|
||||
|
||||
/* Caller must not try to build an empty packet. */
|
||||
BUG_ON(LIST_ISEMPTY(&frm_list) && !add_ping_frm && !ack_frm_len && !cc);
|
||||
|
||||
/* Handle Initial packet padding if necessary. */
|
||||
if (padding && dglen < QUIC_INITIAL_PACKET_MINLEN) {
|
||||
padding_len = QUIC_INITIAL_PACKET_MINLEN - dglen;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user