mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
BUG/MEDIUM: quic-be: CC buffer released from wrong pool
The "connection close state" TX buffer is used to build the datagram with basically a CONNECTION_CLOSE frame to notify the peer about the connection closure. It allows the quic_conn memory release and its replacement by a lighter quic_cc_conn struct. For the QUIC backend, there is a dedicated pool to build such datagrams from bigger TX buffers. But from quic_conn_release(), this is the pool dedicated to the QUIC frontends which was used to release the QUIC backend TX buffers. This patch simply adds a test about the target of the connection to release the "connection close state" TX buffers from the correct pool. No backport needed.
This commit is contained in:
parent
b6d0ecd258
commit
4eef300a2c
@ -1519,7 +1519,10 @@ int quic_conn_release(struct quic_conn *qc)
|
|||||||
free_quic_conn_cids(qc);
|
free_quic_conn_cids(qc);
|
||||||
pool_free(pool_head_quic_cids, qc->cids);
|
pool_free(pool_head_quic_cids, qc->cids);
|
||||||
qc->cids = NULL;
|
qc->cids = NULL;
|
||||||
pool_free(pool_head_quic_cc_buf, qc->tx.cc_buf_area);
|
if (objt_listener(qc->target))
|
||||||
|
pool_free(pool_head_quic_cc_buf, qc->tx.cc_buf_area);
|
||||||
|
else
|
||||||
|
pool_free(pool_head_quic_be_cc_buf, qc->tx.cc_buf_area);
|
||||||
qc->tx.cc_buf_area = NULL;
|
qc->tx.cc_buf_area = NULL;
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user