In qcc_release(), <conn> may be NULL. Thus every access on it must be
tested.
With recent QMux introduction, a call to conn_is_quic() has been added
prior to registration of the stream rejection callback. It could lead to
NULL deref as <conn> is not tested there. Fix this by adding an extra
check on the pointer validity.
No need to backport.
if (qcc->app_ops) {
if (qcc->app_ops->release)
qcc->app_ops->release(qcc->ctx);
- if (conn_is_quic(conn) && conn->handle.qc)
+ if (conn && conn_is_quic(conn) && conn->handle.qc)
conn->handle.qc->strm_reject = qcc->app_ops->strm_reject;
}
TRACE_PROTO("application layer released", QMUX_EV_QCC_END, conn);