summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-03-15 18:44:23 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-03-15 18:44:23 +0300
commit478b3261723a914310271ece3ef91abc9ce2b4cc (patch)
tree8d17bcee5692fe8085f624533c1f4f796754bbf1 /protocols/ICQ-WIM
parentf621aac0cb42e0de9de6f1f05a0b4383eb791930 (diff)
fixes #4214 ([Telegram] Crash)
Diffstat (limited to 'protocols/ICQ-WIM')
-rw-r--r--protocols/ICQ-WIM/src/proto.cpp5
-rw-r--r--protocols/ICQ-WIM/src/proto.h2
-rw-r--r--protocols/ICQ-WIM/src/server.cpp2
3 files changed, 5 insertions, 4 deletions
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<CIcqProto>
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);
}