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.
This commit is contained in:
Amaury Denoyelle 2023-03-09 10:16:09 +01:00
parent e2213df9fe
commit c0c6b6d8c0

View File

@ -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;
}