BUG/MEDIUM: quic: fix memleak for out-of-order crypto data

Liberate quic_enc_level ncbuf in quic_stream_free(). In most cases, this
will already be done when handshake is completed via
qc_treat_rx_crypto_frms(). However, if a connection is released before
handshake completion, a leak was present without this patch.

Under normal situation, this leak should have been limited due to the
majority of QUIC connection success on handshake. However, another bug
caused handshakes to fail too frequently, especially with chrome client.
This had the side-effect to dramatically increase this memory leak.

This should fix in part github issue #1903.
This commit is contained in:
Amaury Denoyelle 2022-11-17 10:12:52 +01:00
parent ff95f2d447
commit bc174b2101

View File

@ -4478,6 +4478,8 @@ void quic_cstream_free(struct quic_cstream *cs)
return;
}
quic_free_ncbuf(&cs->rx.ncbuf);
qc_stream_desc_release(cs->desc);
pool_free(pool_head_quic_cstream, cs);
}