mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 19:08:26 -06:00
Windows:Fix various issues and warnings reported by static code analysis tool Coverity.
This commit is contained in:
@@ -691,7 +691,7 @@ namespace VeraCrypt
|
||||
GetSystemDriveConfiguration();
|
||||
|
||||
ProbeRealDriveSizeRequest request;
|
||||
StringCbCopyW (request.DeviceName, sizeof (request.DeviceName), DriveConfig.DrivePartition.DevicePath.c_str());
|
||||
StringCchCopyW (request.DeviceName, ARRAYSIZE (request.DeviceName), DriveConfig.DrivePartition.DevicePath.c_str());
|
||||
|
||||
CallDriver (TC_IOCTL_PROBE_REAL_DRIVE_SIZE, &request, sizeof (request), &request, sizeof (request));
|
||||
DriveConfig.DrivePartition.Info.PartitionLength = request.RealDriveSize;
|
||||
@@ -720,7 +720,7 @@ namespace VeraCrypt
|
||||
partPath << L"\\Device\\Harddisk" << driveNumber << L"\\Partition" << partNumber;
|
||||
|
||||
DISK_PARTITION_INFO_STRUCT diskPartInfo = {0};
|
||||
StringCbCopyW (diskPartInfo.deviceName, sizeof (diskPartInfo.deviceName), partPath.str().c_str());
|
||||
StringCchCopyW (diskPartInfo.deviceName, ARRAYSIZE (diskPartInfo.deviceName), partPath.str().c_str());
|
||||
|
||||
try
|
||||
{
|
||||
@@ -833,7 +833,7 @@ namespace VeraCrypt
|
||||
memset (&openTestStruct, 0, sizeof (openTestStruct));
|
||||
DWORD dwResult;
|
||||
|
||||
StringCbCopyW (&openTestStruct.wszFileName[0], sizeof(openTestStruct.wszFileName),devicePath);
|
||||
StringCchCopyW (&openTestStruct.wszFileName[0], ARRAYSIZE(openTestStruct.wszFileName),devicePath);
|
||||
|
||||
openTestStruct.bDetectTCBootLoader = TRUE;
|
||||
|
||||
@@ -935,7 +935,7 @@ namespace VeraCrypt
|
||||
bool BootEncryption::SystemDriveIsDynamic ()
|
||||
{
|
||||
GetSystemDriveConfigurationRequest request;
|
||||
StringCbCopyW (request.DevicePath, sizeof (request.DevicePath), GetSystemDriveConfiguration().DeviceKernelPath.c_str());
|
||||
StringCchCopyW (request.DevicePath, ARRAYSIZE (request.DevicePath), GetSystemDriveConfiguration().DeviceKernelPath.c_str());
|
||||
|
||||
CallDriver (TC_IOCTL_GET_SYSTEM_DRIVE_CONFIG, &request, sizeof (request), &request, sizeof (request));
|
||||
return request.DriveIsDynamic ? true : false;
|
||||
@@ -1240,7 +1240,7 @@ namespace VeraCrypt
|
||||
throw ParameterIncorrect (SRC_POS);
|
||||
|
||||
GetSystemDriveConfigurationRequest request;
|
||||
StringCbCopyW (request.DevicePath, sizeof (request.DevicePath), GetSystemDriveConfiguration().DeviceKernelPath.c_str());
|
||||
StringCchCopyW (request.DevicePath, ARRAYSIZE (request.DevicePath), GetSystemDriveConfiguration().DeviceKernelPath.c_str());
|
||||
|
||||
try
|
||||
{
|
||||
@@ -1973,7 +1973,7 @@ namespace VeraCrypt
|
||||
DWORD size = (DWORD) (sizeof (regKeyBuf) - strSize);
|
||||
|
||||
// SetupInstallFromInfSection() does not support prepending of values so we have to modify the registry directly
|
||||
StringCbCopyA ((char *) regKeyBuf, sizeof(regKeyBuf), filter.c_str());
|
||||
StringCchCopyA ((char *) regKeyBuf, ARRAYSIZE(regKeyBuf), filter.c_str());
|
||||
|
||||
if (RegQueryValueExA (regKey, filterReg.c_str(), NULL, NULL, regKeyBuf + strSize, &size) != ERROR_SUCCESS)
|
||||
size = 1;
|
||||
@@ -2115,6 +2115,7 @@ namespace VeraCrypt
|
||||
SC_HANDLE service = OpenService (scm, TC_SYSTEM_FAVORITES_SERVICE_NAME, SERVICE_ALL_ACCESS);
|
||||
if (service)
|
||||
{
|
||||
finally_do_arg (SC_HANDLE, service, { CloseServiceHandle (finally_arg); });
|
||||
// ensure that its parameters are correct
|
||||
throw_sys_if (!ChangeServiceConfig (service,
|
||||
SERVICE_WIN32_OWN_PROCESS,
|
||||
@@ -2585,23 +2586,26 @@ namespace VeraCrypt
|
||||
if (!systemPartitionOnly)
|
||||
{
|
||||
DISK_GEOMETRY geometry = GetDriveGeometry (config.DriveNumber);
|
||||
Buffer sector (geometry.BytesPerSector);
|
||||
|
||||
Device device (config.DevicePath);
|
||||
device.CheckOpened (SRC_POS);
|
||||
|
||||
try
|
||||
if ((geometry.BytesPerSector > 0) && (geometry.BytesPerSector < TC_MAX_VOLUME_SECTOR_SIZE))
|
||||
{
|
||||
device.SeekAt (config.DrivePartition.Info.PartitionLength.QuadPart - geometry.BytesPerSector);
|
||||
device.Read (sector.Ptr(), (DWORD) sector.Size());
|
||||
}
|
||||
catch (SystemException &e)
|
||||
{
|
||||
if (e.ErrorCode != ERROR_CRC)
|
||||
Buffer sector (geometry.BytesPerSector);
|
||||
|
||||
Device device (config.DevicePath);
|
||||
device.CheckOpened (SRC_POS);
|
||||
|
||||
try
|
||||
{
|
||||
e.Show (ParentWindow);
|
||||
Error ("WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS", ParentWindow);
|
||||
throw UserAbort (SRC_POS);
|
||||
device.SeekAt (config.DrivePartition.Info.PartitionLength.QuadPart - geometry.BytesPerSector);
|
||||
device.Read (sector.Ptr(), (DWORD) sector.Size());
|
||||
}
|
||||
catch (SystemException &e)
|
||||
{
|
||||
if (e.ErrorCode != ERROR_CRC)
|
||||
{
|
||||
e.Show (ParentWindow);
|
||||
Error ("WHOLE_DRIVE_ENCRYPTION_PREVENTED_BY_DRIVERS", ParentWindow);
|
||||
throw UserAbort (SRC_POS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2641,7 +2645,7 @@ namespace VeraCrypt
|
||||
void BootEncryption::RestrictPagingFilesToSystemPartition ()
|
||||
{
|
||||
wchar_t pagingFiles[128] = {0};
|
||||
StringCbCopyW (pagingFiles, sizeof(pagingFiles), L"X:\\pagefile.sys 0 0");
|
||||
StringCchCopyW (pagingFiles, ARRAYSIZE(pagingFiles), L"X:\\pagefile.sys 0 0");
|
||||
pagingFiles[0] = GetWindowsDirectory()[0];
|
||||
|
||||
throw_sys_if (!WriteLocalMachineRegistryMultiString (L"System\\CurrentControlSet\\Control\\Session Manager\\Memory Management", L"PagingFiles", pagingFiles, (DWORD) (wcslen (pagingFiles) + 2) * sizeof (wchar_t)));
|
||||
|
||||
@@ -173,7 +173,7 @@ int GetArgumentValue (wchar_t **lpszCommandLineArgs, int *nArgIdx,
|
||||
{
|
||||
/* Handles the case of space between parameter code
|
||||
and value */
|
||||
StringCbCopyW (lpszValue, nValueSize, lpszCommandLineArgs[*nArgIdx + 1]);
|
||||
StringCchCopyW (lpszValue, nValueSize, lpszCommandLineArgs[*nArgIdx + 1]);
|
||||
lpszValue[nValueSize - 1] = 0;
|
||||
(*nArgIdx)++;
|
||||
return HAS_ARGUMENT;
|
||||
|
||||
@@ -232,7 +232,7 @@ void DumpCombo (HWND hComboBox, int bClear)
|
||||
if (szTmp[0] != 0)
|
||||
{
|
||||
wchar_t q[MAX_PATH * 2] = { 0 };
|
||||
XmlQuoteTextW (szTmp, q, sizeof (q));
|
||||
XmlQuoteTextW (szTmp, q, ARRAYSIZE (q));
|
||||
|
||||
fwprintf (f, L"\n\t\t<volume>%s</volume>", q);
|
||||
}
|
||||
|
||||
@@ -716,7 +716,7 @@ DWORD handleWin32Error (HWND hwndDlg, const char* srcPos)
|
||||
pszDesc = (wchar_t*) lpMsgBuf;
|
||||
else
|
||||
{
|
||||
StringCbPrintfW (szErrorValue, sizeof (szErrorValue), L"Error 0x%.8X", dwError);
|
||||
StringCchPrintfW (szErrorValue, ARRAYSIZE (szErrorValue), L"Error 0x%.8X", dwError);
|
||||
pszDesc = szErrorValue;
|
||||
}
|
||||
|
||||
@@ -853,7 +853,7 @@ std::wstring FitPathInGfxWidth (HWND hwnd, HFONT hFont, LONG width, const std::w
|
||||
SelectObject (hdc, (HGDIOBJ) hFont);
|
||||
|
||||
wchar_t pathBuf[TC_MAX_PATH];
|
||||
StringCbCopyW (pathBuf, sizeof (pathBuf), path.c_str());
|
||||
StringCchCopyW (pathBuf, ARRAYSIZE (pathBuf), path.c_str());
|
||||
|
||||
if (DrawText (hdc, pathBuf, (int) path.size(), &rect, DT_CALCRECT | DT_MODIFYSTRING | DT_PATH_ELLIPSIS | DT_SINGLELINE) != 0)
|
||||
newPath = pathBuf;
|
||||
@@ -4898,6 +4898,8 @@ static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg)
|
||||
|
||||
if (QueryPerformanceFrequency (&benchmarkPerformanceFrequency) == 0)
|
||||
{
|
||||
if (ci)
|
||||
crypto_close (ci);
|
||||
MessageBoxW (hwndDlg, GetString ("ERR_PERF_COUNTER"), lpszTitle, ICON_HAND);
|
||||
return FALSE;
|
||||
}
|
||||
@@ -4905,6 +4907,8 @@ static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg)
|
||||
lpTestBuffer = (BYTE *) malloc(benchmarkBufferSize - (benchmarkBufferSize % 16));
|
||||
if (lpTestBuffer == NULL)
|
||||
{
|
||||
if (ci)
|
||||
crypto_close (ci);
|
||||
MessageBoxW (hwndDlg, GetString ("ERR_MEM_ALLOC"), lpszTitle, ICON_HAND);
|
||||
return FALSE;
|
||||
}
|
||||
@@ -8132,7 +8136,7 @@ BOOL SaveBufferToFile (const char *inputBuffer, const wchar_t *destinationFile,
|
||||
{
|
||||
dst = CreateFile (destinationFile,
|
||||
GENERIC_WRITE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, bAppend ? OPEN_EXISTING : CREATE_ALWAYS, 0, NULL);
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, NULL);
|
||||
dwLastError = GetLastError();
|
||||
if (dst == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
@@ -9372,7 +9376,7 @@ void RestoreDefaultKeyFilesParam (void)
|
||||
KeyFileRemoveAll (&FirstKeyFile);
|
||||
if (defaultKeyFilesParam.FirstKeyFile != NULL)
|
||||
{
|
||||
FirstKeyFile = KeyFileCloneAll (defaultKeyFilesParam.FirstKeyFile);
|
||||
KeyFileCloneAll (defaultKeyFilesParam.FirstKeyFile, &FirstKeyFile);
|
||||
KeyFilesEnable = defaultKeyFilesParam.EnableKeyFiles;
|
||||
}
|
||||
else
|
||||
@@ -11295,7 +11299,7 @@ BOOL IsApplicationInstalled (const wchar_t *appName, BOOL b32bitApp)
|
||||
const wchar_t *uninstallRegName = L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
|
||||
BOOL installed = FALSE;
|
||||
HKEY unistallKey;
|
||||
LONG res = RegOpenKeyEx (HKEY_LOCAL_MACHINE, uninstallRegName, 0, KEY_READ | b32bitApp? KEY_WOW64_32KEY: KEY_WOW64_64KEY, &unistallKey);
|
||||
LONG res = RegOpenKeyEx (HKEY_LOCAL_MACHINE, uninstallRegName, 0, KEY_READ | (b32bitApp? KEY_WOW64_32KEY: KEY_WOW64_64KEY), &unistallKey);
|
||||
if (res != ERROR_SUCCESS)
|
||||
{
|
||||
SetLastError (res);
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace VeraCrypt
|
||||
void Show (HWND parent) const
|
||||
{
|
||||
char szErrCode[16];
|
||||
StringCbPrintfA (szErrCode, sizeof(szErrCode), "0x%.8X", LastError);
|
||||
StringCchPrintfA (szErrCode, ARRAYSIZE(szErrCode), "0x%.8X", LastError);
|
||||
string msgBody = "The Random Generator initialization failed.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n" + string (SrcPos) + "\nLast Error = " + string (szErrCode) + ")";
|
||||
MessageBoxA (parent, msgBody.c_str(), "VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND);
|
||||
}
|
||||
@@ -93,7 +93,7 @@ namespace VeraCrypt
|
||||
void Show (HWND parent) const
|
||||
{
|
||||
char szErrCode[16];
|
||||
StringCbPrintfA (szErrCode, sizeof(szErrCode), "0x%.8X", LastError);
|
||||
StringCchPrintfA (szErrCode, ARRAYSIZE(szErrCode), "0x%.8X", LastError);
|
||||
string msgBody = "Windows Crypto API failed.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n" + string (SrcPos) + "\nLast Error = " + string (szErrCode) + ")";
|
||||
MessageBoxA (parent, msgBody.c_str(), "VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND);
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ int TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams)
|
||||
|
||||
if (volParams->bDevice)
|
||||
{
|
||||
StringCbCopyW (deviceName, sizeof(deviceName), volParams->volumePath);
|
||||
StringCchCopyW (deviceName, ARRAYSIZE(deviceName), volParams->volumePath);
|
||||
|
||||
driveLetter = GetDiskDeviceDriveLetter (deviceName);
|
||||
}
|
||||
@@ -874,10 +874,10 @@ BOOL FormatFs (int driveNo, int clusterSize, int fsType)
|
||||
switch (fsType)
|
||||
{
|
||||
case FILESYS_NTFS:
|
||||
StringCbCopyW (szFsFormat, sizeof (szFsFormat),L"NTFS");
|
||||
StringCchCopyW (szFsFormat, ARRAYSIZE (szFsFormat),L"NTFS");
|
||||
break;
|
||||
case FILESYS_EXFAT:
|
||||
StringCbCopyW (szFsFormat, sizeof (szFsFormat),L"EXFAT");
|
||||
StringCchCopyW (szFsFormat, ARRAYSIZE (szFsFormat),L"EXFAT");
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
@@ -886,10 +886,10 @@ BOOL FormatFs (int driveNo, int clusterSize, int fsType)
|
||||
|
||||
if (GetSystemDirectory (dllPath, MAX_PATH))
|
||||
{
|
||||
StringCbCatW(dllPath, sizeof(dllPath), L"\\fmifs.dll");
|
||||
StringCchCatW(dllPath, ARRAYSIZE(dllPath), L"\\fmifs.dll");
|
||||
}
|
||||
else
|
||||
StringCbCopyW(dllPath, sizeof(dllPath), L"C:\\Windows\\System32\\fmifs.dll");
|
||||
StringCchCopyW(dllPath, ARRAYSIZE(dllPath), L"C:\\Windows\\System32\\fmifs.dll");
|
||||
|
||||
hModule = LoadLibrary (dllPath);
|
||||
|
||||
@@ -902,7 +902,7 @@ BOOL FormatFs (int driveNo, int clusterSize, int fsType)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
StringCbCatW (dir, sizeof(dir), L":\\");
|
||||
StringCchCatW (dir, ARRAYSIZE(dir), L":\\");
|
||||
|
||||
FormatExError = TRUE;
|
||||
|
||||
|
||||
@@ -119,20 +119,26 @@ KeyFile *KeyFileClone (KeyFile *keyFile)
|
||||
}
|
||||
|
||||
|
||||
KeyFile *KeyFileCloneAll (KeyFile *firstKeyFile)
|
||||
void KeyFileCloneAll (KeyFile *firstKeyFile, KeyFile **outputKeyFile)
|
||||
{
|
||||
KeyFile *cloneFirstKeyFile = KeyFileClone (firstKeyFile);
|
||||
KeyFile *kf;
|
||||
|
||||
if (firstKeyFile == NULL) return NULL;
|
||||
kf = firstKeyFile->Next;
|
||||
while (kf != NULL)
|
||||
if (outputKeyFile)
|
||||
{
|
||||
KeyFileAdd (cloneFirstKeyFile, KeyFileClone (kf));
|
||||
kf = kf->Next;
|
||||
}
|
||||
KeyFile *cloneFirstKeyFile = KeyFileClone (firstKeyFile);
|
||||
KeyFile *kf;
|
||||
|
||||
return cloneFirstKeyFile;
|
||||
KeyFileRemoveAll (outputKeyFile);
|
||||
if (firstKeyFile)
|
||||
{
|
||||
kf = firstKeyFile->Next;
|
||||
while (kf != NULL)
|
||||
{
|
||||
KeyFileAdd (cloneFirstKeyFile, KeyFileClone (kf));
|
||||
kf = kf->Next;
|
||||
}
|
||||
|
||||
*outputKeyFile = cloneFirstKeyFile;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -451,7 +457,7 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
param = (KeyFilesDlgParam *) lParam;
|
||||
origParam = *(KeyFilesDlgParam *) lParam;
|
||||
|
||||
param->FirstKeyFile = KeyFileCloneAll (param->FirstKeyFile);
|
||||
KeyFileCloneAll (param->FirstKeyFile, ¶m->FirstKeyFile);
|
||||
|
||||
LocalizeDialog (hwndDlg, "IDD_KEYFILES");
|
||||
DragAcceptFiles (hwndDlg, TRUE);
|
||||
@@ -637,7 +643,7 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
|
||||
KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile));
|
||||
if (kf)
|
||||
{
|
||||
DragQueryFile (hdrop, i++, kf->FileName, sizeof (kf->FileName));
|
||||
DragQueryFile (hdrop, i++, kf->FileName, ARRAYSIZE (kf->FileName));
|
||||
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
|
||||
LoadKeyList (hwndDlg, param->FirstKeyFile);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ typedef struct
|
||||
KeyFile *KeyFileAdd (KeyFile *firstKeyFile, KeyFile *keyFile);
|
||||
void KeyFileRemoveAll (KeyFile **firstKeyFile);
|
||||
KeyFile *KeyFileClone (KeyFile *keyFile);
|
||||
KeyFile *KeyFileCloneAll (KeyFile *firstKeyFile);
|
||||
void KeyFileCloneAll (KeyFile *firstKeyFile, KeyFile **outputKeyFile);
|
||||
BOOL KeyFilesApply (HWND hwndDlg, Password *password, KeyFile *firstKeyFilem, const wchar_t* volumeFileName);
|
||||
|
||||
BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
@@ -43,8 +43,8 @@ void VerifyPasswordAndUpdate (HWND hwndDlg, HWND hButton, HWND hPassword,
|
||||
|
||||
UNREFERENCED_PARAMETER (hwndDlg); /* Remove warning */
|
||||
|
||||
GetWindowText (hPassword, szTmp1, sizeof (szTmp1));
|
||||
GetWindowText (hVerify, szTmp2, sizeof (szTmp2));
|
||||
GetWindowText (hPassword, szTmp1, ARRAYSIZE (szTmp1));
|
||||
GetWindowText (hVerify, szTmp2, ARRAYSIZE (szTmp2));
|
||||
|
||||
utf8Len1 = WideCharToMultiByte (CP_UTF8, 0, szTmp1, -1, szTmp1Utf8, MAX_PASSWORD + 1, NULL, NULL);
|
||||
utf8Len2 = WideCharToMultiByte (CP_UTF8, 0, szTmp2, -1, szTmp2Utf8, MAX_PASSWORD + 1, NULL, NULL);
|
||||
|
||||
@@ -78,23 +78,23 @@ BOOL UpdateProgressBarProc (__int64 byteOffset)
|
||||
double perc = (double) (100.0 * (bProgressBarReverse ? ((double) (TotalSize - byteOffset)) : ((double) byteOffset)) / (TotalSize == 0 ? 0.0001 : ((double) TotalSize)));
|
||||
|
||||
if (perc > 99.999999999)
|
||||
StringCbCopyW (text,sizeof(text), GetString ("PROCESSED_PORTION_100_PERCENT"));
|
||||
StringCchCopyW (text,ARRAYSIZE(text), GetString ("PROCESSED_PORTION_100_PERCENT"));
|
||||
else
|
||||
StringCbPrintfW (text, sizeof text, GetString ("PROCESSED_PORTION_X_PERCENT"), perc);
|
||||
StringCchPrintfW (text, ARRAYSIZE (text), GetString ("PROCESSED_PORTION_X_PERCENT"), perc);
|
||||
|
||||
StringCbCatW (text, sizeof(speed), L" ");
|
||||
StringCchCatW (text, ARRAYSIZE(text), L" ");
|
||||
}
|
||||
else
|
||||
{
|
||||
GetSizeString (bytesDone, text, sizeof(text));
|
||||
if (bytesDone < (unsigned __int64) BYTES_PER_MB * 1000000)
|
||||
StringCbPrintfW(text, sizeof(text), L"%I64d %s ", bytesDone / BYTES_PER_MB, GetString ("MB"));
|
||||
StringCchPrintfW(text, ARRAYSIZE(text), L"%I64d %s ", bytesDone / BYTES_PER_MB, GetString ("MB"));
|
||||
else if (bytesDone < (unsigned __int64) BYTES_PER_GB * 1000000)
|
||||
StringCbPrintfW(text, sizeof(text), L"%I64d %s ", bytesDone / BYTES_PER_GB, GetString ("GB"));
|
||||
StringCchPrintfW(text, ARRAYSIZE(text), L"%I64d %s ", bytesDone / BYTES_PER_GB, GetString ("GB"));
|
||||
else if (bytesDone < (unsigned __int64) BYTES_PER_TB * 1000000)
|
||||
StringCbPrintfW(text, sizeof(text), L"%I64d %s ", bytesDone / BYTES_PER_TB, GetString ("TB"));
|
||||
StringCchPrintfW(text, ARRAYSIZE(text), L"%I64d %s ", bytesDone / BYTES_PER_TB, GetString ("TB"));
|
||||
else
|
||||
StringCbPrintfW(text, sizeof(text), L"%I64d %s ", bytesDone / BYTES_PER_PB, GetString ("PB"));
|
||||
StringCchPrintfW(text, ARRAYSIZE(text), L"%I64d %s ", bytesDone / BYTES_PER_PB, GetString ("PB"));
|
||||
}
|
||||
|
||||
SetWindowTextW (GetDlgItem (hCurPage, IDC_BYTESWRITTEN), text);
|
||||
@@ -102,7 +102,7 @@ BOOL UpdateProgressBarProc (__int64 byteOffset)
|
||||
if (!bShowStatus)
|
||||
{
|
||||
GetSpeedString (bRWThroughput ? bytesPerSec*2 : bytesPerSec, speed, sizeof(speed));
|
||||
StringCbCatW (speed, sizeof(speed), L" ");
|
||||
StringCchCatW (speed, ARRAYSIZE(speed), L" ");
|
||||
SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), speed);
|
||||
}
|
||||
|
||||
@@ -111,15 +111,15 @@ BOOL UpdateProgressBarProc (__int64 byteOffset)
|
||||
int64 sec = (int64) ((bProgressBarReverse ? byteOffset : (TotalSize - byteOffset)) / (bytesPerSec == 0 ? 0.001 : bytesPerSec));
|
||||
|
||||
if (bytesPerSec == 0 || sec > 60 * 60 * 24 * 999)
|
||||
StringCbPrintfW (text, sizeof(text), L"%s ", GetString ("NOT_APPLICABLE_OR_NOT_AVAILABLE"));
|
||||
StringCchPrintfW (text, ARRAYSIZE(text), L"%s ", GetString ("NOT_APPLICABLE_OR_NOT_AVAILABLE"));
|
||||
else if (sec >= 60 * 60 * 24 * 2)
|
||||
StringCbPrintfW (text, sizeof(text), L"%I64d %s ", sec / (60 * 24 * 60), days);
|
||||
StringCchPrintfW (text, ARRAYSIZE(text), L"%I64d %s ", sec / (60 * 24 * 60), days);
|
||||
else if (sec >= 120 * 60)
|
||||
StringCbPrintfW (text, sizeof(text), L"%I64d %s ", sec / (60 * 60), hours);
|
||||
StringCchPrintfW (text, ARRAYSIZE(text), L"%I64d %s ", sec / (60 * 60), hours);
|
||||
else if (sec >= 120)
|
||||
StringCbPrintfW (text, sizeof(text), L"%I64d %s ", sec / 60, minutes);
|
||||
StringCchPrintfW (text, ARRAYSIZE(text), L"%I64d %s ", sec / 60, minutes);
|
||||
else
|
||||
StringCbPrintfW (text, sizeof(text), L"%I64d %s ", sec, seconds);
|
||||
StringCchPrintfW (text, ARRAYSIZE(text), L"%I64d %s ", sec, seconds);
|
||||
|
||||
SetWindowTextW (GetDlgItem (hCurPage, IDC_TIMEREMAIN), text);
|
||||
}
|
||||
|
||||
@@ -671,10 +671,10 @@ BOOL SlowPoll (void)
|
||||
wchar_t dllPath[MAX_PATH];
|
||||
if (GetSystemDirectory (dllPath, MAX_PATH))
|
||||
{
|
||||
StringCbCatW(dllPath, sizeof(dllPath), L"\\NETAPI32.DLL");
|
||||
StringCchCatW(dllPath, ARRAYSIZE(dllPath), L"\\NETAPI32.DLL");
|
||||
}
|
||||
else
|
||||
StringCbCopyW(dllPath, sizeof(dllPath), L"C:\\Windows\\System32\\NETAPI32.DLL");
|
||||
StringCchCopyW(dllPath, ARRAYSIZE(dllPath), L"C:\\Windows\\System32\\NETAPI32.DLL");
|
||||
|
||||
hNetAPI32 = LoadLibrary (dllPath);
|
||||
if (hNetAPI32 != NULL)
|
||||
@@ -725,7 +725,7 @@ BOOL SlowPoll (void)
|
||||
wchar_t szDevice[24];
|
||||
|
||||
/* Check whether we can access this device */
|
||||
StringCbPrintfW (szDevice, sizeof(szDevice), L"\\\\.\\PhysicalDrive%d", nDrive);
|
||||
StringCchPrintfW (szDevice, ARRAYSIZE(szDevice), L"\\\\.\\PhysicalDrive%d", nDrive);
|
||||
hDevice = CreateFile (szDevice, 0, FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (hDevice == INVALID_HANDLE_VALUE)
|
||||
|
||||
@@ -1022,16 +1022,16 @@ int CreateVolumeHeaderInMemory (HWND hwndDlg, BOOL bBoot, char *header, int ea,
|
||||
for (i = 0; i < j; i++)
|
||||
{
|
||||
wchar_t tmp2[8] = {0};
|
||||
StringCbPrintfW (tmp2, sizeof(tmp2), L"%02X", (int) (unsigned char) keyInfo.master_keydata[i + primaryKeyOffset]);
|
||||
StringCbCatW (MasterKeyGUIView, sizeof(MasterKeyGUIView), tmp2);
|
||||
StringCchPrintfW (tmp2, ARRAYSIZE(tmp2), L"%02X", (int) (unsigned char) keyInfo.master_keydata[i + primaryKeyOffset]);
|
||||
StringCchCatW (MasterKeyGUIView, ARRAYSIZE(MasterKeyGUIView), tmp2);
|
||||
}
|
||||
|
||||
HeaderKeyGUIView[0] = 0;
|
||||
for (i = 0; i < NBR_KEY_BYTES_TO_DISPLAY; i++)
|
||||
{
|
||||
wchar_t tmp2[8];
|
||||
StringCbPrintfW (tmp2, sizeof(tmp2), L"%02X", (int) (unsigned char) dk[primaryKeyOffset + i]);
|
||||
StringCbCatW (HeaderKeyGUIView, sizeof(HeaderKeyGUIView), tmp2);
|
||||
StringCchPrintfW (tmp2, ARRAYSIZE(tmp2), L"%02X", (int) (unsigned char) dk[primaryKeyOffset + i]);
|
||||
StringCchCatW (HeaderKeyGUIView, ARRAYSIZE(HeaderKeyGUIView), tmp2);
|
||||
}
|
||||
|
||||
if (dots3)
|
||||
|
||||
Reference in New Issue
Block a user