From: Amaury Denoyelle Date: Thu, 24 Feb 2022 09:50:58 +0000 (+0100) Subject: MINOR: quic: add a TODO for a memleak frame on ACK consume X-Git-Tag: v2.6-dev2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b4c9d6e8ca64fb2101a16947a76f1eec0b79e44;p=thirdparty%2Fhaproxy.git MINOR: quic: add a TODO for a memleak frame on ACK consume The quic_frame instance containing the quic_stream must be freed when the corresponding ACK has been received. However when implementing this on qcs_try_to_consume, some data transfers are interrupted and cannot complete (DC test from interop test suite). --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 3e63187b73..6f92849868 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -1414,6 +1414,18 @@ static int qcs_try_to_consume(struct qcs *qcs) frm_node = eb64_next(frm_node); eb64_delete(&strm->offset); + + /* TODO + * + * memleak: The quic_frame container of the quic_stream should + * be liberated here, as in qc_treat_acked_tx_frm. However this + * code seems to cause a bug which can lead to interrupted + * transfers. + * + * struct quic_frame frm = container_of(strm, struct quic_frame, stream); + * LIST_DELETE(&frm->list); + * pool_free(pool_head_quic_frame, frm); + */ } return ret;