From 478b3261723a914310271ece3ef91abc9ce2b4cc Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 15 Mar 2024 18:44:23 +0300 Subject: fixes #4214 ([Telegram] Crash) --- protocols/ICQ-WIM/src/proto.cpp | 5 +++-- protocols/ICQ-WIM/src/proto.h | 2 +- protocols/ICQ-WIM/src/server.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'protocols/ICQ-WIM/src') diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index 00f37bfa92..5c93aa0147 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -174,11 +174,12 @@ bool CIcqProto::OnContactDeleted(MCONTACT hContact, uint32_t flags) return true; } -void CIcqProto::OnReceiveOfflineFile(DB::FILE_BLOB &blob, void *ft) +void CIcqProto::OnReceiveOfflineFile(DB::FILE_BLOB &blob) { - if (auto *pFileInfo = (IcqFileInfo *)ft) { + if (auto *pFileInfo = (IcqFileInfo *)blob.getUserInfo()) { blob.setUrl(pFileInfo->szOrigUrl); blob.setSize(pFileInfo->dwFileSize); + delete pFileInfo; } } diff --git a/protocols/ICQ-WIM/src/proto.h b/protocols/ICQ-WIM/src/proto.h index 8416e344a7..514787102a 100644 --- a/protocols/ICQ-WIM/src/proto.h +++ b/protocols/ICQ-WIM/src/proto.h @@ -450,7 +450,7 @@ class CIcqProto : public PROTO void OnEventEdited(MCONTACT, MEVENT, const DBEVENTINFO &dbei) override; void OnMarkRead(MCONTACT, MEVENT) override; void OnModulesLoaded() override; - void OnReceiveOfflineFile(DB::FILE_BLOB &blob, void *ft) override; + void OnReceiveOfflineFile(DB::FILE_BLOB &blob) override; void OnSendOfflineFile(DB::EventInfo &dbei, DB::FILE_BLOB &blob, void *ft) override; void OnShutdown() override; diff --git a/protocols/ICQ-WIM/src/server.cpp b/protocols/ICQ-WIM/src/server.cpp index 506b0651fb..5d758f6b11 100644 --- a/protocols/ICQ-WIM/src/server.cpp +++ b/protocols/ICQ-WIM/src/server.cpp @@ -616,7 +616,7 @@ void CIcqProto::ParseMessage(MCONTACT hContact, __int64 &lastMsgId, const JSONNo DB::FILE_BLOB blob(pFileInfo, pszShortName, T2Utf(pFileInfo->wszDescr)); if (hOldEvent) { - OnReceiveOfflineFile(blob, pFileInfo); + OnReceiveOfflineFile(blob); blob.write(dbei); db_event_edit(hOldEvent, &dbei, true); } -- cgit v1.2.3