]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: add a TODO for a memleak frame on ACK consume
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 24 Feb 2022 09:50:58 +0000 (10:50 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 25 Feb 2022 14:06:17 +0000 (15:06 +0100)
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).

src/xprt_quic.c

index 3e63187b73e70f9b97caf07a9235d2ce3966cbfc..6f9284986812b80b3a617e8c08cd2f80f7f8b017 100644 (file)
@@ -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;