From: Amaury Denoyelle Date: Thu, 9 Mar 2023 09:16:09 +0000 (+0100) Subject: MINOR: mux-quic: close on qcs allocation failure X-Git-Tag: v2.8-dev6~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c0c6b6d8c0f11f2106d881df09140b0e429251e9;p=thirdparty%2Fhaproxy.git MINOR: mux-quic: close on qcs allocation failure Emit a CONNECTION_CLOSE with INTERNAL_ERROR code each time qcs allocation fails. This can happen in two cases : * when creating a local stream through application layer * when instantiating a remote stream through qcc_get_qcs() In both cases, error paths are already in place to interrupt the current operation and a CONNECTION_CLOSE will be emitted soon after. This should be backported up to 2.7. --- diff --git a/src/mux_quic.c b/src/mux_quic.c index c67432391d..c254c25994 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -538,6 +538,7 @@ struct qcs *qcc_init_stream_local(struct qcc *qcc, int bidi) qcs = qcs_new(qcc, *next, type); if (!qcs) { TRACE_LEAVE(QMUX_EV_QCS_NEW, qcc->conn); + qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR); return NULL; } @@ -597,8 +598,8 @@ static struct qcs *qcc_init_stream_remote(struct qcc *qcc, uint64_t id) qcs = qcs_new(qcc, *largest, type); if (!qcs) { - /* TODO emit RESET_STREAM */ TRACE_ERROR("stream fallocation failure", QMUX_EV_QCS_NEW, qcc->conn); + qcc_emit_cc(qcc, QC_ERR_INTERNAL_ERROR); goto err; }