From ea380041e65659b582282987ed230ae616114bb6 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 25 Feb 2023 17:06:17 +0300 Subject: fixes #3344 (random crash in ICQ file transfers) --- src/core/stdfile/src/filerecvdlg.cpp | 4 ++-- src/core/stdfile/src/filexferdlg.cpp | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/core/stdfile/src/filerecvdlg.cpp b/src/core/stdfile/src/filerecvdlg.cpp index 408224768c..587120e360 100644 --- a/src/core/stdfile/src/filerecvdlg.cpp +++ b/src/core/stdfile/src/filerecvdlg.cpp @@ -329,7 +329,7 @@ public: { Window_FreeIcon_IcoLib(m_hwnd); - delete dat; + delete dat; dat = nullptr; SetWindowLongPtr(m_hwnd, GWLP_USERDATA, 0); } @@ -343,7 +343,7 @@ public: case HM_RECVEVENT: ACKDATA *ack = (ACKDATA *)lParam; - if ((ack == nullptr) || (ack->hProcess != dat->fs) || (ack->type != ACKTYPE_FILE) || (ack->hContact != dat->hContact)) + if (!ack || !dat || (ack->hProcess != dat->fs) || (ack->type != ACKTYPE_FILE) || (ack->hContact != dat->hContact)) break; if (ack->result == ACKRESULT_DENIED || ack->result == ACKRESULT_FAILED) { diff --git a/src/core/stdfile/src/filexferdlg.cpp b/src/core/stdfile/src/filexferdlg.cpp index 32ef89ecf3..e545649b5b 100644 --- a/src/core/stdfile/src/filexferdlg.cpp +++ b/src/core/stdfile/src/filexferdlg.cpp @@ -749,10 +749,9 @@ FileDlgData::~FileDlgData() { if (fs) ProtoChainSend(hContact, PSS_FILECANCEL, (WPARAM)fs, 0); - if (hPreshutdownEvent) - UnhookEvent(hPreshutdownEvent); - if (hNotifyEvent) - UnhookEvent(hNotifyEvent); + + UnhookEvent(hPreshutdownEvent); + UnhookEvent(hNotifyEvent); FreeProtoFileTransferStatus(&transferStatus); FreeFilesMatrix(&files); -- cgit v1.2.3