Fix #266: CloseHandle close an invalid handle

This commit is contained in:
yuanyuanxiang
2025-12-26 15:57:27 +01:00
parent 02d86f6ce7
commit 34e7cdb663
33 changed files with 171 additions and 161 deletions

View File

@@ -502,11 +502,11 @@ void CFileManagerDlg::OnClose()
DestroyCursor(m_hCursor);
if (m_hFileSend != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFileSend);
SAFE_CLOSE_HANDLE(m_hFileSend);
m_hFileSend = INVALID_HANDLE_VALUE;
}
if (m_hFileRecv != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFileRecv);
SAFE_CLOSE_HANDLE(m_hFileRecv);
m_hFileRecv = INVALID_HANDLE_VALUE;
}
@@ -1175,14 +1175,14 @@ BOOL CFileManagerDlg::SendUploadJob()
m_strFileName = m_strUploadRemoteFile = fileRemote;
if (m_hFileSend != INVALID_HANDLE_VALUE)
CloseHandle(m_hFileSend);
SAFE_CLOSE_HANDLE(m_hFileSend);
m_hFileSend = CreateFile(m_strOperatingFile.GetBuffer(0),
GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (m_hFileSend == INVALID_HANDLE_VALUE)
return FALSE;
dwSizeLow = GetFileSize(m_hFileSend, &dwSizeHigh);
m_nOperatingFileLength = ((__int64)dwSizeHigh << 32) + dwSizeLow;
//CloseHandle(m_hFileSend); // <20>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD>ر<EFBFBD>, <20>Ժ<EFBFBD><D4BA><EFBFBD>Ҫ<EFBFBD><D2AA>
//SAFE_CLOSE_HANDLE(m_hFileSend); // <20>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD>ر<EFBFBD>, <20>Ժ<EFBFBD><D4BA><EFBFBD>Ҫ<EFBFBD><D2AA>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(1<>ֽ<EFBFBD>token, 8<>ֽڴ<D6BD>С, <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>, '\0')
int nPacketSize = (fileRemote.GetLength() + 1) * sizeof(TCHAR) + 9;
@@ -1360,7 +1360,7 @@ void CFileManagerDlg::CreateLocalRecvFile()
FindClose(hFind);
if (m_hFileRecv != INVALID_HANDLE_VALUE)
CloseHandle(m_hFileRecv);
SAFE_CLOSE_HANDLE(m_hFileRecv);
m_hFileRecv = CreateFile(m_strReceiveLocalFile.GetBuffer(0),
GENERIC_WRITE, 0, NULL, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, 0);
// <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1452,7 +1452,7 @@ void CFileManagerDlg::EndLocalRecvFile()
m_nOperatingFileLength = 0;
if (m_hFileRecv != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFileRecv);
SAFE_CLOSE_HANDLE(m_hFileRecv);
m_hFileRecv = INVALID_HANDLE_VALUE;
}
@@ -1486,7 +1486,7 @@ void CFileManagerDlg::EndLocalUploadFile()
m_nOperatingFileLength = 0;
if (m_hFileSend != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFileSend);
SAFE_CLOSE_HANDLE(m_hFileSend);
m_hFileSend = INVALID_HANDLE_VALUE;
}
SendStop(FALSE); // <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>, <20><><EFBFBD>ض˲Ż<CBB2><C5BB>رվ<D8B1><D5BE><EFBFBD>
@@ -1548,7 +1548,7 @@ void CFileManagerDlg::SendContinue()
void CFileManagerDlg::SendStop(BOOL bIsDownload)
{
if (m_hFileRecv != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFileRecv);
SAFE_CLOSE_HANDLE(m_hFileRecv);
m_hFileRecv = INVALID_HANDLE_VALUE;
}
BYTE bBuff[2];
@@ -1705,7 +1705,7 @@ void CFileManagerDlg::SendFileData()
// <20><><EFBFBD><EFBFBD>ֵ
bool bRet = true;
ReadFile(m_hFileSend, lpBuffer + nHeadLength, nNumberOfBytesToRead, &nNumberOfBytesRead, NULL);
//CloseHandle(m_hFileSend); // <20>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD>ر<EFBFBD>, <20>Ժ<EFBFBD><D4BA><EFBFBD>Ҫ<EFBFBD><D2AA>
//SAFE_CLOSE_HANDLE(m_hFileSend); // <20>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD>ر<EFBFBD>, <20>Ժ<EFBFBD><D4BA><EFBFBD>Ҫ<EFBFBD><D2AA>
if (nNumberOfBytesRead > 0) {
int nPacketSize = nNumberOfBytesRead + nHeadLength;