diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index cea4c74..fdd7ecc 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -2472,6 +2472,7 @@ bool SendData(void* user, FileChunkPacket* chunk, BYTE* data, int size) return false; } CDlgFileSend* dlg = (CDlgFileSend*)ctx->hDlg; + if (!dlg) return false; BYTE* name = data + sizeof(FileChunkPacket); dlg->UpdateProgress(CString((char*)name, chunk->nameLength), chunk); @@ -2482,9 +2483,9 @@ void delay_cancel(CONTEXT_OBJECT* ctx, int sec) { if (!ctx) return; CDlgFileSend* dlg = (CDlgFileSend*)ctx->hDlg; - dlg->FinishFileSend(TRUE); + if (dlg) dlg->FinishFileSend(TRUE); Sleep(sec*1000); - if (::IsWindow(dlg->GetSafeHwnd())) + if (dlg && ::IsWindow(dlg->GetSafeHwnd())) dlg->PostMessageA(WM_CLOSE); ctx->hDlg = NULL; ctx->CancelIO(); diff --git a/server/2015Remote/CDlgFileSend.cpp b/server/2015Remote/CDlgFileSend.cpp index 38882d8..c949c8e 100644 --- a/server/2015Remote/CDlgFileSend.cpp +++ b/server/2015Remote/CDlgFileSend.cpp @@ -60,11 +60,13 @@ void CDlgFileSend::OnReceiveComplete(void) void CDlgFileSend::UpdateProgress(CString file, const FileChunkPacket *chunk) { + if (!GetSafeHwnd()) return; PostMessageA(WM_UPDATEFILEPROGRESS, (WPARAM)new CString(file), (LPARAM)new FileChunkPacket(*chunk)); } void CDlgFileSend::FinishFileSend(BOOL succeed) { + if (!GetSafeHwnd()) return; PostMessageA(WM_FINISHFILESEND, NULL, (LPARAM)succeed); }