+9
-0
lines changedFilter options
+9
-0
lines changed Original file line number Diff line number Diff line change
@@ -3908,6 +3908,15 @@ EConnectStatus srt::CUDT::craftKmResponse(uint32_t* aw_kmdata, size_t& w_kmdatas
3908
3908
int hs_flags = SrtHSRequest::SRT_HSTYPE_HSFLAGS::unwrap(m_ConnRes.m_iType);
3909
3909
if (IsSet(hs_flags, CHandShake::HS_EXT_KMREQ))
3910
3910
{
3911
+
// m_pCryptoControl can be NULL if the socket has been closed already. See issue #2231.
3912
+
if (!m_pCryptoControl)
3913
+
{
3914
+
m_RejectReason = SRT_REJ_IPE;
3915
+
LOGC(cnlog.Error, log << "IPE: craftKmResponse needs to send KM, but CryptoControl does not exist."
3916
+
<< " Socket state: connected=" << boolalpha << m_bConnected << ", connecting=" << m_bConnecting
3917
+
<< ", broken=" << m_bBroken << ", opened " << m_bOpened << ", closing=" << m_bClosing << ".");
3918
+
return CONN_REJECT;
3919
+
}
3911
3920
// This is a periodic handshake update, so you need to extract the KM data from the
3912
3921
// first message, provided that it is there.
3913
3922
size_t msgsize = m_pCryptoControl->getKmMsg_size(0);
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4