Windows: Fix warnings reported by Coverity static code analyzer

This commit is contained in:
Mounir IDRASSI 2020-02-10 00:21:15 +01:00
parent a7b61ce5e5
commit c1d670fd75
No known key found for this signature in database
GPG Key ID: 02C30AE90FAE4A6F
4 changed files with 37 additions and 17 deletions

View File

@ -5529,11 +5529,11 @@ static void DisplayBenchmarkResults (HWND hwndDlg)
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem); SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
break; break;
case BENCHMARK_TYPE_PRF: case BENCHMARK_TYPE_PRF:
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d ms", benchmarkTable[i].meanBytesPerSec); swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d ms", (int) benchmarkTable[i].meanBytesPerSec);
LvItem.iSubItem = 1; LvItem.iSubItem = 1;
LvItem.pszText = item1; LvItem.pszText = item1;
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem); SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d", benchmarkTable[i].decSpeed); swprintf_s (item1, sizeof(item1) / sizeof(item1[0]), L"%d", (int) benchmarkTable[i].decSpeed);
LvItem.iSubItem = 2; LvItem.iSubItem = 2;
LvItem.pszText = item1; LvItem.pszText = item1;
SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem); SendMessageW (hList, LVM_SETITEMW, 0, (LPARAM)&LvItem);
@ -7530,7 +7530,10 @@ int GetLastAvailableDrive ()
BOOL IsDriveAvailable (int driveNo) BOOL IsDriveAvailable (int driveNo)
{ {
return (GetUsedLogicalDrives() & (1 << driveNo)) == 0; if (driveNo >= 0 && driveNo < 26)
return (GetUsedLogicalDrives() & (1 << driveNo)) == 0;
else
return FALSE;
} }
@ -13057,7 +13060,7 @@ BOOL IsApplicationInstalled (const wchar_t *appName, BOOL b32bitApp)
} }
wchar_t regName[1024]; wchar_t regName[1024];
DWORD regNameSize = sizeof (regName); DWORD regNameSize = ARRAYSIZE (regName);
DWORD index = 0; DWORD index = 0;
while (RegEnumKeyEx (unistallKey, index++, regName, &regNameSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) while (RegEnumKeyEx (unistallKey, index++, regName, &regNameSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{ {

View File

@ -515,6 +515,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
#ifdef _WIN64 #ifdef _WIN64
CRYPTO_INFO tmpCI; CRYPTO_INFO tmpCI;
PCRYPTO_INFO cryptoInfoBackup = NULL; PCRYPTO_INFO cryptoInfoBackup = NULL;
BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled();
#endif #endif
if (pVolumePassword->Length == 0) return -1; if (pVolumePassword->Length == 0) return -1;
@ -684,7 +685,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
} }
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled()) if (bIsRamEncryptionEnabled)
{ {
VcProtectKeys (cryptoInfo, VcGetEncryptionID (cryptoInfo)); VcProtectKeys (cryptoInfo, VcGetEncryptionID (cryptoInfo));
} }
@ -856,7 +857,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
DebugAddProgressDlgStatus(hwndDlg, L"Writing re-encrypted primary header ...\r\n"); DebugAddProgressDlgStatus(hwndDlg, L"Writing re-encrypted primary header ...\r\n");
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VirtualLock (&tmpCI, sizeof (CRYPTO_INFO)); VirtualLock (&tmpCI, sizeof (CRYPTO_INFO));
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO)); memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
@ -886,7 +887,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
FALSE ); // use slow poll FALSE ); // use slow poll
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
cryptoInfo = cryptoInfoBackup; cryptoInfo = cryptoInfoBackup;
burn (&tmpCI, sizeof (CRYPTO_INFO)); burn (&tmpCI, sizeof (CRYPTO_INFO));
@ -926,7 +927,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
LARGE_INTEGER hiddenOffset; LARGE_INTEGER hiddenOffset;
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VirtualLock (&tmpCI, sizeof (CRYPTO_INFO)); VirtualLock (&tmpCI, sizeof (CRYPTO_INFO));
memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO)); memcpy (&tmpCI, cryptoInfo, sizeof (CRYPTO_INFO));
@ -938,7 +939,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, newDataAreaSize, !backupHeader, backupHeader); nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, cryptoInfo, newDataAreaSize, !backupHeader, backupHeader);
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
cryptoInfo = cryptoInfoBackup; cryptoInfo = cryptoInfoBackup;
burn (&tmpCI, sizeof (CRYPTO_INFO)); burn (&tmpCI, sizeof (CRYPTO_INFO));

View File

@ -774,6 +774,9 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
int pim = volParams->pim; int pim = volParams->pim;
DISK_GEOMETRY driveGeometry; DISK_GEOMETRY driveGeometry;
HWND hwndDlg = volParams->hwndDlg; HWND hwndDlg = volParams->hwndDlg;
#ifdef _WIN64
BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled();
#endif
bInPlaceEncNonSysResumed = TRUE; bInPlaceEncNonSysResumed = TRUE;
@ -870,7 +873,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
goto closing_seq; goto closing_seq;
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo)); VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo));
VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo)); VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo));
@ -1100,7 +1103,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
#ifdef _WIN64 #ifdef _WIN64
CRYPTO_INFO tmpCI; CRYPTO_INFO tmpCI;
PCRYPTO_INFO cryptoInfoBackup = NULL; PCRYPTO_INFO cryptoInfoBackup = NULL;
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VirtualLock (&tmpCI, sizeof(tmpCI)); VirtualLock (&tmpCI, sizeof(tmpCI));
memcpy (&tmpCI, masterCryptoInfo, sizeof (CRYPTO_INFO)); memcpy (&tmpCI, masterCryptoInfo, sizeof (CRYPTO_INFO));
@ -1129,7 +1132,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
wipeAlgorithm == TC_WIPE_NONE ? FALSE : (wipePass < PRAND_HEADER_WIPE_PASSES - 1)); wipeAlgorithm == TC_WIPE_NONE ? FALSE : (wipePass < PRAND_HEADER_WIPE_PASSES - 1));
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
masterCryptoInfo = cryptoInfoBackup; masterCryptoInfo = cryptoInfoBackup;
burn (&tmpCI, sizeof (CRYPTO_INFO)); burn (&tmpCI, sizeof (CRYPTO_INFO));
@ -1151,7 +1154,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
} }
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VirtualLock (&tmpCI, sizeof(tmpCI)); VirtualLock (&tmpCI, sizeof(tmpCI));
memcpy (&tmpCI, headerCryptoInfo, sizeof (CRYPTO_INFO)); memcpy (&tmpCI, headerCryptoInfo, sizeof (CRYPTO_INFO));
@ -1164,7 +1167,7 @@ int EncryptPartitionInPlaceResume (HANDLE dev,
nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, headerCryptoInfo, masterCryptoInfo->VolumeSize.Value, TRUE, FALSE); nStatus = WriteRandomDataToReservedHeaderAreas (hwndDlg, dev, headerCryptoInfo, masterCryptoInfo->VolumeSize.Value, TRUE, FALSE);
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
headerCryptoInfo = cryptoInfoBackup; headerCryptoInfo = cryptoInfoBackup;
burn (&tmpCI, sizeof (CRYPTO_INFO)); burn (&tmpCI, sizeof (CRYPTO_INFO));
@ -1331,6 +1334,9 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile
int pkcs5_prf = volParams->pkcs5; int pkcs5_prf = volParams->pkcs5;
int pim = volParams->pim; int pim = volParams->pim;
DISK_GEOMETRY driveGeometry; DISK_GEOMETRY driveGeometry;
#ifdef _WIN64
BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled();
#endif
buf = (char *) TCalloc (TC_MAX_NONSYS_INPLACE_ENC_WORK_CHUNK_SIZE); buf = (char *) TCalloc (TC_MAX_NONSYS_INPLACE_ENC_WORK_CHUNK_SIZE);
@ -1438,7 +1444,7 @@ int DecryptPartitionInPlace (volatile FORMAT_VOL_PARAMETERS *volParams, volatile
goto closing_seq; goto closing_seq;
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled ()) if (bIsRamEncryptionEnabled)
{ {
VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo)); VcProtectKeys (masterCryptoInfo, VcGetEncryptionID (masterCryptoInfo));
VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo)); VcProtectKeys (headerCryptoInfo, VcGetEncryptionID (headerCryptoInfo));
@ -1840,6 +1846,9 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN
uint32 headerCrc32; uint32 headerCrc32;
byte *fieldPos; byte *fieldPos;
PCRYPTO_INFO pCryptoInfo = headerCryptoInfo; PCRYPTO_INFO pCryptoInfo = headerCryptoInfo;
#ifdef _WIN64
BOOL bIsRamEncryptionEnabled = IsRamEncryptionEnabled();
#endif
header = (byte *) TCalloc (TC_VOLUME_HEADER_EFFECTIVE_SIZE); header = (byte *) TCalloc (TC_VOLUME_HEADER_EFFECTIVE_SIZE);
@ -1861,7 +1870,7 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN
} }
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled()) if (bIsRamEncryptionEnabled)
{ {
pCryptoInfo = crypto_open(); pCryptoInfo = crypto_open();
if (!pCryptoInfo) if (!pCryptoInfo)
@ -1915,7 +1924,7 @@ int FastVolumeHeaderUpdate (HANDLE dev, CRYPTO_INFO *headerCryptoInfo, CRYPTO_IN
dwError = GetLastError(); dwError = GetLastError();
#ifdef _WIN64 #ifdef _WIN64
if (IsRamEncryptionEnabled() && pCryptoInfo) if (bIsRamEncryptionEnabled && pCryptoInfo)
{ {
crypto_close(pCryptoInfo); crypto_close(pCryptoInfo);
} }

View File

@ -5157,7 +5157,14 @@ static BOOL Dismount (HWND hwndDlg, int nDosDriveNo)
WaitCursor (); WaitCursor ();
if (nDosDriveNo == -2) if (nDosDriveNo == -2)
{
nDosDriveNo = (char) (HIWORD (GetSelectedLong (GetDlgItem (hwndDlg, IDC_DRIVELIST))) - L'A'); nDosDriveNo = (char) (HIWORD (GetSelectedLong (GetDlgItem (hwndDlg, IDC_DRIVELIST))) - L'A');
if (nDosDriveNo < 0 || nDosDriveNo >= 26)
{
NormalCursor ();
return FALSE;
}
}
if (bCloseDismountedWindows) if (bCloseDismountedWindows)
{ {