BUG/MINOR: quic: SIGFPE in quic_cubic_update()
authorFrédéric Lécaille <flecaille@haproxy.com>
Thu, 13 Apr 2023 08:46:42 +0000 (10:46 +0200)
committerFrédéric Lécaille <flecaille@haproxy.com>
Thu, 13 Apr 2023 17:20:08 +0000 (19:20 +0200)
commit595251f22eb7b6bfa8b797e32c3326f5ad9ef07a
tree5bf7e14f49ae5331bcd4c96223dd59a5509c79ff
parent9d68c6aaf696c7080ee32beb3e1b07a4c1aa2378
BUG/MINOR: quic: SIGFPE in quic_cubic_update()

As reported by @Tristan971 in GH #2116, the congestion control window could be zero
due to an inversion in the code about the reduction factor to be applied.
On a new loss event, it must be applied to the slow start threshold and the window
should never be below ->min_cwnd (2*max_udp_payload_sz).

Same issue in both newReno and cubic algorithm. Furthermore in newReno, only the
threshold was decremented.

Must be backported to 2.6 and 2.7.
src/quic_cc_cubic.c
src/quic_cc_newreno.c