From 41e677d44f0efc241bf484252af6de64b0d00a6c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 17 Sep 2023 16:42:38 +0300 Subject: ICQ: fix for occasional crash --- protocols/ICQ-WIM/src/server.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'protocols/ICQ-WIM/src/server.cpp') diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp index 74c5265389..8bb416a2c2 100644 --- a/protocols/ICQ-WIM/src/server.cpp +++ b/protocols/ICQ-WIM/src/server.cpp @@ -1164,7 +1164,7 @@ void CIcqProto::OnSearchResults(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pRe void CIcqProto::OnSendMessage(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq) { - IcqOwnMessage *ownMsg = (IcqOwnMessage*)pReq->pUserInfo; + IcqOwnMessage *ownMsg = (IcqOwnMessage *)pReq->pUserInfo; JsonReply root(pReply); if (root.error() != 200) { @@ -1178,9 +1178,12 @@ void CIcqProto::OnSendMessage(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq) CallService(MS_MESSAGESTATE_UPDATE, ownMsg->m_hContact, MRD_TYPE_DELIVERED); const JSONNode &data = root.data(); - CMStringA reqId(root.requestId()); - CMStringA msgId(data["histMsgId"].as_mstring()); - CheckOwnMessage(reqId, msgId, false); + if (auto &jsonMsg = data["histMsgId"]) { + CMStringA reqId(root.requestId()); + CMStringA msgId(jsonMsg.as_mstring()); + CheckOwnMessage(reqId, msgId, false); + } + CheckLastId(ownMsg->m_hContact, data); } -- cgit v1.2.3