VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Format/Tcformat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Format/Tcformat.c')
-rw-r--r--src/Format/Tcformat.c188
1 files changed, 95 insertions, 93 deletions
diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c
index 0074a169..d0b247fa 100644
--- a/src/Format/Tcformat.c
+++ b/src/Format/Tcformat.c
@@ -48,6 +48,8 @@
48#include "Wipe.h" 48#include "Wipe.h"
49#include "Xml.h" 49#include "Xml.h"
50 50
51#include <Strsafe.h>
52
51using namespace VeraCrypt; 53using namespace VeraCrypt;
52 54
53enum wizard_pages 55enum wizard_pages
@@ -1217,7 +1219,7 @@ void ComboSelChangeEA (HWND hwndDlg)
1217 switch (cnt) // Number of ciphers in the cascade 1219 switch (cnt) // Number of ciphers in the cascade
1218 { 1220 {
1219 case 2: 1221 case 2:
1220 swprintf (auxLine, GetString ("TWO_LAYER_CASCADE_HELP"), 1222 StringCbPrintfW (auxLine, sizeof(auxLine), GetString ("TWO_LAYER_CASCADE_HELP"),
1221 CipherGetName (cipherIDs[1]), 1223 CipherGetName (cipherIDs[1]),
1222 CipherGetKeySize (cipherIDs[1])*8, 1224 CipherGetKeySize (cipherIDs[1])*8,
1223 CipherGetName (cipherIDs[0]), 1225 CipherGetName (cipherIDs[0]),
@@ -1225,7 +1227,7 @@ void ComboSelChangeEA (HWND hwndDlg)
1225 break; 1227 break;
1226 1228
1227 case 3: 1229 case 3:
1228 swprintf (auxLine, GetString ("THREE_LAYER_CASCADE_HELP"), 1230 StringCbPrintfW (auxLine, sizeof(auxLine), GetString ("THREE_LAYER_CASCADE_HELP"),
1229 CipherGetName (cipherIDs[2]), 1231 CipherGetName (cipherIDs[2]),
1230 CipherGetKeySize (cipherIDs[2])*8, 1232 CipherGetKeySize (cipherIDs[2])*8,
1231 CipherGetName (cipherIDs[1]), 1233 CipherGetName (cipherIDs[1]),
@@ -1235,7 +1237,7 @@ void ComboSelChangeEA (HWND hwndDlg)
1235 break; 1237 break;
1236 } 1238 }
1237 1239
1238 wcscpy_s (hyperLink, sizeof(hyperLink) / 2, GetString ("IDC_LINK_MORE_INFO_ABOUT_CIPHER")); 1240 StringCbCopyW (hyperLink, sizeof(hyperLink), GetString ("IDC_LINK_MORE_INFO_ABOUT_CIPHER"));
1239 1241
1240 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), auxLine); 1242 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), auxLine);
1241 } 1243 }
@@ -1454,11 +1456,11 @@ static void UpdateSysEncProgressBar (void)
1454 // Status 1456 // Status
1455 1457
1456 if (locBootEncStatus.TransformWaitingForIdle) 1458 if (locBootEncStatus.TransformWaitingForIdle)
1457 wcscpy (tmpStr, GetString ("PROGRESS_STATUS_WAITING")); 1459 StringCbCopyW (tmpStr, sizeof(tmpStr), GetString ("PROGRESS_STATUS_WAITING"));
1458 else 1460 else
1459 wcscpy (tmpStr, GetString (SystemEncryptionStatus == SYSENC_STATUS_DECRYPTING ? "PROGRESS_STATUS_DECRYPTING" : "PROGRESS_STATUS_ENCRYPTING")); 1461 StringCbCopyW (tmpStr, sizeof(tmpStr), GetString (SystemEncryptionStatus == SYSENC_STATUS_DECRYPTING ? "PROGRESS_STATUS_DECRYPTING" : "PROGRESS_STATUS_ENCRYPTING"));
1460 1462
1461 wcscat (tmpStr, L" "); 1463 StringCbCatW (tmpStr, sizeof(tmpStr), L" ");
1462 1464
1463 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), tmpStr); 1465 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), tmpStr);
1464 } 1466 }
@@ -1518,17 +1520,17 @@ static void UpdateSysEncControls (void)
1518 { 1520 {
1519 wchar_t tmpStr[100]; 1521 wchar_t tmpStr[100];
1520 1522
1521 wcscpy (tmpStr, GetString ((SysDriveOrPartitionFullyEncrypted (TRUE) || !locBootEncStatus.DriveMounted) ? 1523 StringCbCopyW (tmpStr, sizeof(tmpStr), GetString ((SysDriveOrPartitionFullyEncrypted (TRUE) || !locBootEncStatus.DriveMounted) ?
1522 "PROGRESS_STATUS_FINISHED" : "PROGRESS_STATUS_PAUSED")); 1524 "PROGRESS_STATUS_FINISHED" : "PROGRESS_STATUS_PAUSED"));
1523 wcscat (tmpStr, L" "); 1525 StringCbCatW (tmpStr, sizeof(tmpStr), L" ");
1524 1526
1525 // Status 1527 // Status
1526 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), tmpStr); 1528 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), tmpStr);
1527 1529
1528 if (SysDriveOrPartitionFullyEncrypted (TRUE) || SystemEncryptionStatus == SYSENC_STATUS_NONE) 1530 if (SysDriveOrPartitionFullyEncrypted (TRUE) || SystemEncryptionStatus == SYSENC_STATUS_NONE)
1529 { 1531 {
1530 wcscpy (tmpStr, GetString ("PROCESSED_PORTION_100_PERCENT")); 1532 StringCbCopyW (tmpStr, sizeof(tmpStr), GetString ("PROCESSED_PORTION_100_PERCENT"));
1531 wcscat (tmpStr, L" "); 1533 StringCbCatW (tmpStr, sizeof(tmpStr), L" ");
1532 1534
1533 SetWindowTextW (GetDlgItem (hCurPage, IDC_BYTESWRITTEN), tmpStr); 1535 SetWindowTextW (GetDlgItem (hCurPage, IDC_BYTESWRITTEN), tmpStr);
1534 } 1536 }
@@ -1699,9 +1701,9 @@ static BOOL GetDevicePathForHiddenOS (void)
1699 1701
1700 try 1702 try
1701 { 1703 {
1702 strncpy (szFileName, BootEncObj->GetPartitionForHiddenOS().DevicePath.c_str(), sizeof(szFileName) - 1); 1704 StringCbCopyA (szFileName, sizeof(szFileName), BootEncObj->GetPartitionForHiddenOS().DevicePath.c_str());
1703 1705
1704 CreateFullVolumePath (szDiskFile, szFileName, &tmpbDevice); 1706 CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), szFileName, &tmpbDevice);
1705 } 1707 }
1706 catch (Exception &e) 1708 catch (Exception &e)
1707 { 1709 {
@@ -1804,29 +1806,29 @@ void ShowNonSysInPlaceEncUIStatus (void)
1804 switch (NonSysInplaceEncStatus) 1806 switch (NonSysInplaceEncStatus)
1805 { 1807 {
1806 case NONSYS_INPLACE_ENC_STATUS_PAUSED: 1808 case NONSYS_INPLACE_ENC_STATUS_PAUSED:
1807 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_PAUSED")); 1809 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_PAUSED"));
1808 break; 1810 break;
1809 case NONSYS_INPLACE_ENC_STATUS_PREPARING: 1811 case NONSYS_INPLACE_ENC_STATUS_PREPARING:
1810 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_PREPARING")); 1812 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_PREPARING"));
1811 break; 1813 break;
1812 case NONSYS_INPLACE_ENC_STATUS_RESIZING: 1814 case NONSYS_INPLACE_ENC_STATUS_RESIZING:
1813 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_RESIZING")); 1815 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_RESIZING"));
1814 break; 1816 break;
1815 case NONSYS_INPLACE_ENC_STATUS_ENCRYPTING: 1817 case NONSYS_INPLACE_ENC_STATUS_ENCRYPTING:
1816 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_ENCRYPTING")); 1818 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_ENCRYPTING"));
1817 break; 1819 break;
1818 case NONSYS_INPLACE_ENC_STATUS_FINALIZING: 1820 case NONSYS_INPLACE_ENC_STATUS_FINALIZING:
1819 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_FINALIZING")); 1821 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_FINALIZING"));
1820 break; 1822 break;
1821 case NONSYS_INPLACE_ENC_STATUS_FINISHED: 1823 case NONSYS_INPLACE_ENC_STATUS_FINISHED:
1822 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_FINISHED")); 1824 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_FINISHED"));
1823 break; 1825 break;
1824 case NONSYS_INPLACE_ENC_STATUS_ERROR: 1826 case NONSYS_INPLACE_ENC_STATUS_ERROR:
1825 wcscpy (nonSysInplaceEncUIStatus, GetString ("PROGRESS_STATUS_ERROR")); 1827 StringCbCopyW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), GetString ("PROGRESS_STATUS_ERROR"));
1826 break; 1828 break;
1827 } 1829 }
1828 1830
1829 wcscat (nonSysInplaceEncUIStatus, L" "); 1831 StringCbCatW (nonSysInplaceEncUIStatus, sizeof(nonSysInplaceEncUIStatus), L" ");
1830 1832
1831 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), nonSysInplaceEncUIStatus); 1833 SetWindowTextW (GetDlgItem (hCurPage, IDC_WRITESPEED), nonSysInplaceEncUIStatus);
1832} 1834}
@@ -1974,10 +1976,10 @@ void DisplayRandPool (HWND hPoolDisplay, BOOL bShow)
1974 { 1976 {
1975 tmpByte = randPool[row * RANDPOOL_DISPLAY_COLUMNS + col]; 1977 tmpByte = randPool[row * RANDPOOL_DISPLAY_COLUMNS + col];
1976 1978
1977 sprintf ((char *) tmp, bRandPoolDispAscii ? ((tmpByte >= 32 && tmpByte < 255 && tmpByte != '&') ? " %c " : " . ") : "%02X ", tmpByte); 1979 StringCbPrintfA ((char *) tmp, sizeof(tmp), bRandPoolDispAscii ? ((tmpByte >= 32 && tmpByte < 255 && tmpByte != '&') ? " %c " : " . ") : "%02X ", tmpByte);
1978 strcat ((char *) outRandPoolDispBuffer, (char *) tmp); 1980 StringCbCatA ((char *) outRandPoolDispBuffer, sizeof(outRandPoolDispBuffer), (char *) tmp);
1979 } 1981 }
1980 strcat ((char *) outRandPoolDispBuffer, "\n"); 1982 StringCbCatA ((char *) outRandPoolDispBuffer, sizeof(outRandPoolDispBuffer), "\n");
1981 } 1983 }
1982 SetWindowText (hPoolDisplay, (char *) outRandPoolDispBuffer); 1984 SetWindowText (hPoolDisplay, (char *) outRandPoolDispBuffer);
1983 1985
@@ -2300,7 +2302,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
2300 2302
2301 if (! ((bHiddenVol && !bHiddenVolHost) && errno != EACCES)) // Only ask ask for permission to overwrite an existing volume if we're not creating a hidden volume 2303 if (! ((bHiddenVol && !bHiddenVolHost) && errno != EACCES)) // Only ask ask for permission to overwrite an existing volume if we're not creating a hidden volume
2302 { 2304 {
2303 _snwprintf (szTmp, sizeof szTmp / 2, 2305 StringCbPrintfW (szTmp, sizeof szTmp,
2304 GetString (errno == EACCES ? "READONLYPROMPT" : "OVERWRITEPROMPT"), 2306 GetString (errno == EACCES ? "READONLYPROMPT" : "OVERWRITEPROMPT"),
2305 szDiskFile); 2307 szDiskFile);
2306 2308
@@ -2463,7 +2465,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
2463 } 2465 }
2464 else if (!(bHiddenVolHost && hiddenVolHostDriveNo < 0)) // If the error was not that the hidden volume host could not be mounted (this error has already been reported to the user) 2466 else if (!(bHiddenVolHost && hiddenVolHostDriveNo < 0)) // If the error was not that the hidden volume host could not be mounted (this error has already been reported to the user)
2465 { 2467 {
2466 swprintf (szMsg, GetString ("CREATE_FAILED"), szDiskFile); 2468 StringCbPrintfW (szMsg, sizeof(szMsg), GetString ("CREATE_FAILED"), szDiskFile);
2467 MessageBoxW (hwndDlg, szMsg, lpszTitle, ICON_HAND); 2469 MessageBoxW (hwndDlg, szMsg, lpszTitle, ICON_HAND);
2468 } 2470 }
2469 2471
@@ -2904,11 +2906,11 @@ int PrintFreeSpace (HWND hwndTextBox, char *lpszDrive, PLARGE_INTEGER lDiskFree)
2904 2906
2905 if (bHiddenVol && !bHiddenVolHost) // If it's a hidden volume 2907 if (bHiddenVol && !bHiddenVolHost) // If it's a hidden volume
2906 { 2908 {
2907 _snwprintf (szTmp2, sizeof szTmp2 / 2, GetString (nResourceString), ((double) lDiskFree->QuadPart) / nMultiplier); 2909 StringCbPrintfW (szTmp2, sizeof szTmp2, GetString (nResourceString), ((double) lDiskFree->QuadPart) / nMultiplier);
2908 SetWindowTextW (GetDlgItem (hwndTextBox, IDC_SIZEBOX), szTmp2); 2910 SetWindowTextW (GetDlgItem (hwndTextBox, IDC_SIZEBOX), szTmp2);
2909 } 2911 }
2910 else 2912 else
2911 _snwprintf (szTmp2, sizeof szTmp2 / 2, GetString (nResourceString), lpszDrive, ((double) lDiskFree->QuadPart) / nMultiplier); 2913 StringCbPrintfW (szTmp2, sizeof szTmp2, GetString (nResourceString), lpszDrive, ((double) lDiskFree->QuadPart) / nMultiplier);
2912 2914
2913 SetWindowTextW (hwndTextBox, szTmp2); 2915 SetWindowTextW (hwndTextBox, szTmp2);
2914 2916
@@ -2925,7 +2927,7 @@ void DisplaySizingErrorText (HWND hwndTextBox)
2925 if (translateWin32Error (szTmp, sizeof (szTmp) / sizeof(szTmp[0]))) 2927 if (translateWin32Error (szTmp, sizeof (szTmp) / sizeof(szTmp[0])))
2926 { 2928 {
2927 wchar_t szTmp2[1024]; 2929 wchar_t szTmp2[1024];
2928 wsprintfW (szTmp2, L"%s\n%s", GetString ("CANNOT_CALC_SPACE"), szTmp); 2930 StringCbPrintfW (szTmp2, sizeof(szTmp2), L"%s\n%s", GetString ("CANNOT_CALC_SPACE"), szTmp);
2929 SetWindowTextW (hwndTextBox, szTmp2); 2931 SetWindowTextW (hwndTextBox, szTmp2);
2930 } 2932 }
2931 else 2933 else
@@ -3152,8 +3154,8 @@ static BOOL FinalPreTransformPrompts (void)
3152 int driveNo; 3154 int driveNo;
3153 WCHAR deviceName[MAX_PATH]; 3155 WCHAR deviceName[MAX_PATH];
3154 3156
3155 strcpy ((char *)deviceName, szFileName); 3157 StringCbCopyA ((char *)deviceName, sizeof(deviceName), szFileName);
3156 ToUNICODE ((char *)deviceName); 3158 ToUNICODE ((char *)deviceName, sizeof(deviceName));
3157 3159
3158 driveNo = GetDiskDeviceDriveLetter (deviceName); 3160 driveNo = GetDiskDeviceDriveLetter (deviceName);
3159 3161
@@ -3171,7 +3173,7 @@ static BOOL FinalPreTransformPrompts (void)
3171 if (!GetDriveLabel (driveNo, volumeLabel, sizeof (volumeLabel))) 3173 if (!GetDriveLabel (driveNo, volumeLabel, sizeof (volumeLabel)))
3172 volumeLabel[0] = 0; 3174 volumeLabel[0] = 0;
3173 3175
3174 swprintf_s (drive, sizeof (drive)/2, volumeLabel[0] ? L" (%hc: '%s')" : L" (%hc:%s)", 'A' + driveNo, volumeLabel[0] ? volumeLabel : L""); 3176 StringCbPrintfW (drive, sizeof (drive), volumeLabel[0] ? L" (%hc: '%s')" : L" (%hc:%s)", 'A' + driveNo, volumeLabel[0] ? volumeLabel : L"");
3175 } 3177 }
3176 else 3178 else
3177 { 3179 {
@@ -3180,9 +3182,9 @@ static BOOL FinalPreTransformPrompts (void)
3180 } 3182 }
3181 3183
3182 if (bHiddenOS && bHiddenVolHost) 3184 if (bHiddenOS && bHiddenVolHost)
3183 swprintf (szTmp, GetString ("OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION"), szFileName, drive); 3185 StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("OVERWRITEPROMPT_DEVICE_HIDDEN_OS_PARTITION"), szFileName, drive);
3184 else 3186 else
3185 swprintf (szTmp, GetString (bInPlaceEncNonSys ? "NONSYS_INPLACE_ENC_CONFIRM" : "OVERWRITEPROMPT_DEVICE"), type, szFileName, drive); 3187 StringCbPrintfW (szTmp, sizeof(szTmp), GetString (bInPlaceEncNonSys ? "NONSYS_INPLACE_ENC_CONFIRM" : "OVERWRITEPROMPT_DEVICE"), type, szFileName, drive);
3186 3188
3187 3189
3188 x = MessageBoxW (MainDlg, szTmp, lpszTitle, YES_NO | MB_ICONWARNING | (bInPlaceEncNonSys ? MB_DEFBUTTON1 : MB_DEFBUTTON2)); 3190 x = MessageBoxW (MainDlg, szTmp, lpszTitle, YES_NO | MB_ICONWARNING | (bInPlaceEncNonSys ? MB_DEFBUTTON1 : MB_DEFBUTTON2));
@@ -3208,27 +3210,27 @@ static BOOL FinalPreTransformPrompts (void)
3208 wchar_t tmpMcOption1 [500]; 3210 wchar_t tmpMcOption1 [500];
3209 wchar_t tmpMcOptionCancel [50]; 3211 wchar_t tmpMcOptionCancel [50];
3210 3212
3211 wcscpy (tmpMcMsg, GetString("OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA")); 3213 StringCbCopyW (tmpMcMsg, sizeof(tmpMcMsg), GetString("OVERWRITEPROMPT_DEVICE_SECOND_WARNING_LOTS_OF_DATA"));
3212 wcscpy (tmpMcOption1, GetString("ERASE_FILES_BY_CREATING_VOLUME")); 3214 StringCbCopyW (tmpMcOption1, sizeof(tmpMcOption1), GetString("ERASE_FILES_BY_CREATING_VOLUME"));
3213 wcscpy (tmpMcOptionCancel, GetString("CANCEL")); 3215 StringCbCopyW (tmpMcOptionCancel, sizeof(tmpMcOptionCancel), GetString("CANCEL"));
3214 3216
3215 wcscat (tmpMcMsg, L"\n\n"); 3217 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), L"\n\n");
3216 wcscat (tmpMcMsg, GetString("DRIVE_LETTER_ITEM")); 3218 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), GetString("DRIVE_LETTER_ITEM"));
3217 swprintf_s (szTmp, sizeof (szTmp)/2, L"%hc:", 'A' + driveNo); 3219 StringCbPrintfW (szTmp, sizeof (szTmp), L"%hc:", 'A' + driveNo);
3218 wcscat (tmpMcMsg, szTmp); 3220 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), szTmp);
3219 3221
3220 wcscat (tmpMcMsg, L"\n"); 3222 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), L"\n");
3221 wcscat (tmpMcMsg, GetString("LABEL_ITEM")); 3223 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), GetString("LABEL_ITEM"));
3222 wcscat (tmpMcMsg, volumeLabel[0] != 0 ? volumeLabel : GetString("NOT_APPLICABLE_OR_NOT_AVAILABLE")); 3224 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), volumeLabel[0] != 0 ? volumeLabel : GetString("NOT_APPLICABLE_OR_NOT_AVAILABLE"));
3223 3225
3224 wcscat (tmpMcMsg, L"\n"); 3226 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), L"\n");
3225 wcscat (tmpMcMsg, GetString("SIZE_ITEM")); 3227 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), GetString("SIZE_ITEM"));
3226 GetSizeString (nVolumeSize, szTmp); 3228 GetSizeString (nVolumeSize, szTmp, sizeof(szTmp));
3227 wcscat (tmpMcMsg, szTmp); 3229 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), szTmp);
3228 3230
3229 wcscat (tmpMcMsg, L"\n"); 3231 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), L"\n");
3230 wcscat (tmpMcMsg, GetString("PATH_ITEM")); 3232 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), GetString("PATH_ITEM"));
3231 wcscat (tmpMcMsg, deviceName); 3233 StringCbCatW (tmpMcMsg, sizeof(tmpMcMsg), deviceName);
3232 3234
3233 wchar_t *tmpStr[] = {L"", tmpMcMsg, tmpMcOption1, tmpMcOptionCancel, 0}; 3235 wchar_t *tmpStr[] = {L"", tmpMcMsg, tmpMcOption1, tmpMcOptionCancel, 0};
3234 switch (AskMultiChoice ((void **) tmpStr, TRUE)) 3236 switch (AskMultiChoice ((void **) tmpStr, TRUE))
@@ -3258,8 +3260,8 @@ void HandleOldAssignedDriveLetter (void)
3258 WCHAR deviceName[MAX_PATH]; 3260 WCHAR deviceName[MAX_PATH];
3259 int driveLetter = -1; 3261 int driveLetter = -1;
3260 3262
3261 strcpy ((char *)deviceName, szDiskFile); 3263 StringCbCopyA ((char *)deviceName, sizeof(deviceName), szDiskFile);
3262 ToUNICODE ((char *)deviceName); 3264 ToUNICODE ((char *)deviceName, sizeof(deviceName));
3263 driveLetter = GetDiskDeviceDriveLetter (deviceName); 3265 driveLetter = GetDiskDeviceDriveLetter (deviceName);
3264 3266
3265 if (!bHiddenVolHost 3267 if (!bHiddenVolHost
@@ -3269,7 +3271,7 @@ void HandleOldAssignedDriveLetter (void)
3269 char rootPath[] = { (char) driveLetter + 'A', ':', '\\', 0 }; 3271 char rootPath[] = { (char) driveLetter + 'A', ':', '\\', 0 };
3270 wchar_t szTmp[8192]; 3272 wchar_t szTmp[8192];
3271 3273
3272 swprintf (szTmp, GetString ("AFTER_FORMAT_DRIVE_LETTER_WARN"), rootPath[0], rootPath[0], rootPath[0], rootPath[0]); 3274 StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("AFTER_FORMAT_DRIVE_LETTER_WARN"), rootPath[0], rootPath[0], rootPath[0], rootPath[0]);
3273 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING); 3275 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING);
3274 } 3276 }
3275 } 3277 }
@@ -3302,7 +3304,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3302 case WM_INITDIALOG: 3304 case WM_INITDIALOG:
3303 LocalizeDialog (hwndDlg, "IDD_VOL_CREATION_WIZARD_DLG"); 3305 LocalizeDialog (hwndDlg, "IDD_VOL_CREATION_WIZARD_DLG");
3304 3306
3305 sprintf (PageDebugId, "FORMAT_PAGE_%d", nCurPageNo); 3307 StringCbPrintfA (PageDebugId, sizeof(PageDebugId), "FORMAT_PAGE_%d", nCurPageNo);
3306 LastDialogId = PageDebugId; 3308 LastDialogId = PageDebugId;
3307 3309
3308 switch (nCurPageNo) 3310 switch (nCurPageNo)
@@ -3760,16 +3762,16 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3760 3762
3761 if (bHiddenVolHost) 3763 if (bHiddenVolHost)
3762 { 3764 {
3763 wcsncpy (str, GetString ("SIZE_HELP_HIDDEN_HOST_VOL"), sizeof (str) / 2); 3765 StringCbCopyW (str, sizeof(str), GetString ("SIZE_HELP_HIDDEN_HOST_VOL"));
3764 } 3766 }
3765 else 3767 else
3766 { 3768 {
3767 wcsncpy (str, GetString (bHiddenVol ? "SIZE_HELP_HIDDEN_VOL" : "SIZE_HELP"), sizeof (str) / 2); 3769 StringCbCopyW (str, sizeof(str), GetString (bHiddenVol ? "SIZE_HELP_HIDDEN_VOL" : "SIZE_HELP"));
3768 } 3770 }
3769 3771
3770 if (bDevice && !(bHiddenVol && !bHiddenVolHost)) // If raw device but not a hidden volume 3772 if (bDevice && !(bHiddenVol && !bHiddenVolHost)) // If raw device but not a hidden volume
3771 { 3773 {
3772 _snwprintf (str, sizeof str / 2, L"%s%s", 3774 StringCbPrintfW (str, sizeof str, L"%s%s",
3773 GetString ((bHiddenOS && bHiddenVol) ? "SIZE_PARTITION_HIDDEN_SYSENC_HELP" : "SIZE_PARTITION_HELP"), 3775 GetString ((bHiddenOS && bHiddenVol) ? "SIZE_PARTITION_HIDDEN_SYSENC_HELP" : "SIZE_PARTITION_HELP"),
3774 (bHiddenVolHost && !bHiddenOS) ? GetString ("SIZE_PARTITION_HIDDEN_VOL_HELP") : L""); 3776 (bHiddenVolHost && !bHiddenOS) ? GetString ("SIZE_PARTITION_HIDDEN_VOL_HELP") : L"");
3775 } 3777 }
@@ -3823,7 +3825,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3823 if (nUIVolumeSize != 0) 3825 if (nUIVolumeSize != 0)
3824 { 3826 {
3825 char szTmp[32]; 3827 char szTmp[32];
3826 sprintf (szTmp, "%I64u", nUIVolumeSize); 3828 StringCbPrintfA (szTmp, sizeof(szTmp), "%I64u", nUIVolumeSize);
3827 SetWindowText (GetDlgItem (hwndDlg, IDC_SIZEBOX), szTmp); 3829 SetWindowText (GetDlgItem (hwndDlg, IDC_SIZEBOX), szTmp);
3828 } 3830 }
3829 3831
@@ -3882,7 +3884,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3882 ToBootPwdField (hwndDlg, IDC_PASSWORD); 3884 ToBootPwdField (hwndDlg, IDC_PASSWORD);
3883 ToBootPwdField (hwndDlg, IDC_VERIFY); 3885 ToBootPwdField (hwndDlg, IDC_VERIFY);
3884 3886
3885 sprintf (OrigKeyboardLayout, "%08X", (DWORD) GetKeyboardLayout (NULL) & 0xFFFF); 3887 StringCbPrintfA (OrigKeyboardLayout, sizeof(OrigKeyboardLayout), "%08X", (DWORD) GetKeyboardLayout (NULL) & 0xFFFF);
3886 3888
3887 if ((DWORD) GetKeyboardLayout (NULL) != 0x00000409 && (DWORD) GetKeyboardLayout (NULL) != 0x04090409) 3889 if ((DWORD) GetKeyboardLayout (NULL) != 0x00000409 && (DWORD) GetKeyboardLayout (NULL) != 0x04090409)
3888 { 3890 {
@@ -3909,17 +3911,17 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3909 3911
3910 if (bHiddenVolHost) 3912 if (bHiddenVolHost)
3911 { 3913 {
3912 wcsncpy (str, GetString (bHiddenOS ? "PASSWORD_SYSENC_OUTERVOL_HELP" : "PASSWORD_HIDDENVOL_HOST_HELP"), sizeof (str) / 2); 3914 StringCbCopyW (str, sizeof(str), GetString (bHiddenOS ? "PASSWORD_SYSENC_OUTERVOL_HELP" : "PASSWORD_HIDDENVOL_HOST_HELP"));
3913 } 3915 }
3914 else if (bHiddenVol) 3916 else if (bHiddenVol)
3915 { 3917 {
3916 _snwprintf (str, sizeof str / 2, L"%s%s", 3918 StringCbPrintfW (str, sizeof str, L"%s%s",
3917 GetString (bHiddenOS ? "PASSWORD_HIDDEN_OS_HELP" : "PASSWORD_HIDDENVOL_HELP"), 3919 GetString (bHiddenOS ? "PASSWORD_HIDDEN_OS_HELP" : "PASSWORD_HIDDENVOL_HELP"),
3918 GetString ("PASSWORD_HELP")); 3920 GetString ("PASSWORD_HELP"));
3919 } 3921 }
3920 else 3922 else
3921 { 3923 {
3922 wcsncpy (str, GetString ("PASSWORD_HELP"), sizeof (str) / 2); 3924 StringCbCopyW (str, sizeof(str), GetString ("PASSWORD_HELP"));
3923 } 3925 }
3924 3926
3925 SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD), EM_LIMITTEXT, MAX_PASSWORD, 0); 3927 SendMessage (GetDlgItem (hwndDlg, IDC_PASSWORD), EM_LIMITTEXT, MAX_PASSWORD, 0);
@@ -3966,22 +3968,22 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
3966 Init2RadButtonPageYesNo (nNeedToStoreFilesOver4GB); 3968 Init2RadButtonPageYesNo (nNeedToStoreFilesOver4GB);
3967 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_BOX_TITLE), GetString ("FILESYS_PAGE_TITLE")); 3969 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_BOX_TITLE), GetString ("FILESYS_PAGE_TITLE"));
3968 3970
3969 wcscpy (szTmp, GetString ("FILESYS_PAGE_HELP_QUESTION")); 3971 StringCbCopyW (szTmp, sizeof(szTmp), GetString ("FILESYS_PAGE_HELP_QUESTION"));
3970 3972
3971 if (bHiddenVolHost) 3973 if (bHiddenVolHost)
3972 wcscat (szTmp, L"\n\n"); 3974 StringCbCatW (szTmp, sizeof(szTmp), L"\n\n");
3973 else 3975 else
3974 { 3976 {
3975 wcscat (szTmp, L"\n\n\n"); 3977 StringCbCatW (szTmp, sizeof(szTmp), L"\n\n\n");
3976 wcscat (szTmp, GetString ("NOTE_BEGINNING")); 3978 StringCbCatW (szTmp, sizeof(szTmp), GetString ("NOTE_BEGINNING"));
3977 } 3979 }
3978 3980
3979 wcscat (szTmp, GetString ("FILESYS_PAGE_HELP_EXPLANATION")); 3981 StringCbCatW (szTmp, sizeof(szTmp), GetString ("FILESYS_PAGE_HELP_EXPLANATION"));
3980 3982
3981 if (bHiddenVolHost) 3983 if (bHiddenVolHost)
3982 { 3984 {
3983 wcscat (szTmp, L" "); 3985 StringCbCatW (szTmp, sizeof(szTmp), L" ");
3984 wcscat (szTmp, GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL")); 3986 StringCbCatW (szTmp, sizeof(szTmp), GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL"));
3985 } 3987 }
3986 3988
3987 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), szTmp); 3989 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), szTmp);
@@ -4049,7 +4051,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
4049 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), GetString ("NEXT")); 4051 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), GetString ("NEXT"));
4050 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_PREV), GetString ("PREV")); 4052 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_PREV), GetString ("PREV"));
4051 4053
4052 _snwprintf (szTmp, sizeof szTmp / 2, 4054 StringCbPrintfW (szTmp, sizeof szTmp,
4053 GetString (bDontVerifyRescueDisk ? "RESCUE_DISK_BURN_INFO_NO_CHECK" : "RESCUE_DISK_BURN_INFO"), 4055 GetString (bDontVerifyRescueDisk ? "RESCUE_DISK_BURN_INFO_NO_CHECK" : "RESCUE_DISK_BURN_INFO"),
4054 szRescueDiskISO, IsWindowsIsoBurnerAvailable() ? L"" : GetString ("RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER")); 4056 szRescueDiskISO, IsWindowsIsoBurnerAvailable() ? L"" : GetString ("RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER"));
4055 4057
@@ -4129,7 +4131,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
4129 4131
4130 try 4132 try
4131 { 4133 {
4132 wsprintfW (finalMsg, 4134 StringCbPrintfW (finalMsg, sizeof(finalMsg),
4133 GetString ("SYS_ENCRYPTION_PRETEST_INFO"), 4135 GetString ("SYS_ENCRYPTION_PRETEST_INFO"),
4134 BootEncObj->GetSystemDriveConfiguration().DriveNumber); 4136 BootEncObj->GetSystemDriveConfiguration().DriveNumber);
4135 } 4137 }
@@ -4493,12 +4495,12 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
4493 // -50% reserve for filesystem "peculiarities" 4495 // -50% reserve for filesystem "peculiarities"
4494 maxRecomOuterVolFillSize /= 2; 4496 maxRecomOuterVolFillSize /= 2;
4495 4497
4496 swprintf (szMaxRecomOuterVolFillSize, L"%I64d %s", maxRecomOuterVolFillSize / BYTES_PER_MB, GetString ("MB")); 4498 StringCbPrintfW (szMaxRecomOuterVolFillSize, sizeof(szMaxRecomOuterVolFillSize), L"%I64d %s", maxRecomOuterVolFillSize / BYTES_PER_MB, GetString ("MB"));
4497 4499
4498 swprintf (msg, GetString ("HIDVOL_HOST_FILLING_HELP_SYSENC"), hiddenVolHostDriveNo + 'A', szMaxRecomOuterVolFillSize); 4500 StringCbPrintfW (msg, sizeof(msg), GetString ("HIDVOL_HOST_FILLING_HELP_SYSENC"), hiddenVolHostDriveNo + 'A', szMaxRecomOuterVolFillSize);
4499 } 4501 }
4500 else 4502 else
4501 swprintf (msg, GetString ("HIDVOL_HOST_FILLING_HELP"), hiddenVolHostDriveNo + 'A'); 4503 StringCbPrintfW (msg, sizeof(msg), GetString ("HIDVOL_HOST_FILLING_HELP"), hiddenVolHostDriveNo + 'A');
4502 4504
4503 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), msg); 4505 SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), msg);
4504 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_BOX_TITLE), GetString ("HIDVOL_HOST_FILLING_TITLE")); 4506 SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_BOX_TITLE), GetString ("HIDVOL_HOST_FILLING_TITLE"));
@@ -4738,9 +4740,9 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
4738 4740
4739 bWarnOuterVolSuitableFileSys = FALSE; // Do not show this warning anymore (this also prevents potential endless repetition due to some race conditions) 4741 bWarnOuterVolSuitableFileSys = FALSE; // Do not show this warning anymore (this also prevents potential endless repetition due to some race conditions)
4740 4742
4741 wcscpy (szTmp, GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL")); 4743 StringCbCopyW (szTmp, sizeof(szTmp), GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL"));
4742 wcscat (szTmp, L"\n\n"); 4744 StringCbCatW (szTmp, sizeof(szTmp), L"\n\n");
4743 wcscat (szTmp, GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM")); 4745 StringCbCatW (szTmp, sizeof(szTmp), GetString ("FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM"));
4744 4746
4745 if (MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2) == IDNO) 4747 if (MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2) == IDNO)
4746 { 4748 {
@@ -4834,8 +4836,8 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
4834 4836
4835 SetFocus (GetDlgItem (MainDlg, IDC_NEXT)); 4837 SetFocus (GetDlgItem (MainDlg, IDC_NEXT));
4836 4838
4837 strcpy (szFileName, DeferredNonSysInPlaceEncDevices [selPartitionItemId].Path.c_str()); 4839 StringCbCopyA (szFileName, sizeof(szFileName), DeferredNonSysInPlaceEncDevices [selPartitionItemId].Path.c_str());
4838 CreateFullVolumePath (szDiskFile, szFileName, &tmpbDevice); 4840 CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), szFileName, &tmpbDevice);
4839 4841
4840 nVolumeSize = GetDeviceSize (szDiskFile); 4842 nVolumeSize = GetDeviceSize (szDiskFile);
4841 if (nVolumeSize == -1) 4843 if (nVolumeSize == -1)
@@ -5298,7 +5300,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
5298 if (!BrowseFiles (hwndDlg, "OPEN_TITLE", tmpszRescueDiskISO, FALSE, TRUE, NULL)) 5300 if (!BrowseFiles (hwndDlg, "OPEN_TITLE", tmpszRescueDiskISO, FALSE, TRUE, NULL))
5299 return 1; 5301 return 1;
5300 5302
5301 strcpy (szRescueDiskISO, tmpszRescueDiskISO); 5303 StringCbCopyA (szRescueDiskISO, sizeof(szRescueDiskISO), tmpszRescueDiskISO);
5302 5304
5303 SetDlgItemText (hwndDlg, IDC_RESCUE_DISK_ISO_PATH, szRescueDiskISO); 5305 SetDlgItemText (hwndDlg, IDC_RESCUE_DISK_ISO_PATH, szRescueDiskISO);
5304 EnableWindow (GetDlgItem (MainDlg, IDC_NEXT), (GetWindowTextLength (GetDlgItem (hwndDlg, IDC_RESCUE_DISK_ISO_PATH)) > 1)); 5306 EnableWindow (GetDlgItem (MainDlg, IDC_NEXT), (GetWindowTextLength (GetDlgItem (hwndDlg, IDC_RESCUE_DISK_ISO_PATH)) > 1));
@@ -5431,7 +5433,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
5431 } 5433 }
5432 5434
5433 SHGetFolderPath (NULL, CSIDL_MYDOCUMENTS, NULL, 0, szRescueDiskISO); 5435 SHGetFolderPath (NULL, CSIDL_MYDOCUMENTS, NULL, 0, szRescueDiskISO);
5434 strcat (szRescueDiskISO, "\\VeraCrypt Rescue Disk.iso"); 5436 StringCbCatA (szRescueDiskISO, sizeof(szRescueDiskISO), "\\VeraCrypt Rescue Disk.iso");
5435 5437
5436 if (IsOSAtLeast (WIN_VISTA)) 5438 if (IsOSAtLeast (WIN_VISTA))
5437 { 5439 {
@@ -5485,8 +5487,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
5485 for (i = 0; i < sizeof (tmp); i++) 5487 for (i = 0; i < sizeof (tmp); i++)
5486 { 5488 {
5487 char tmp3[8]; 5489 char tmp3[8];
5488 sprintf (tmp3, "%02X", (int) (unsigned char) tmp[i]); 5490 StringCbPrintfA (tmp3, sizeof(tmp3), "%02X", (int) (unsigned char) tmp[i]);
5489 strcat (tmp2, tmp3); 5491 StringCbCatA (tmp2, sizeof(tmp2), tmp3);
5490 } 5492 }
5491 5493
5492 tmp2[32] = 0; 5494 tmp2[32] = 0;
@@ -5703,9 +5705,9 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
5703 bKeyboardLayoutChanged = TRUE; 5705 bKeyboardLayoutChanged = TRUE;
5704 5706
5705 wchar_t szTmp [4096]; 5707 wchar_t szTmp [4096];
5706 wcscpy (szTmp, GetString ("KEYB_LAYOUT_CHANGE_PREVENTED")); 5708 StringCbCopyW (szTmp, sizeof(szTmp), GetString ("KEYB_LAYOUT_CHANGE_PREVENTED"));
5707 wcscat (szTmp, L"\n\n"); 5709 StringCbCatW (szTmp, sizeof(szTmp), L"\n\n");
5708 wcscat (szTmp, GetString ("KEYB_LAYOUT_SYS_ENC_EXPLANATION")); 5710 StringCbCatW (szTmp, sizeof(szTmp), GetString ("KEYB_LAYOUT_SYS_ENC_EXPLANATION"));
5709 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING | MB_SETFOREGROUND | MB_TOPMOST); 5711 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONWARNING | MB_SETFOREGROUND | MB_TOPMOST);
5710 } 5712 }
5711 5713
@@ -5718,9 +5720,9 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
5718 bKeybLayoutAltKeyWarningShown = TRUE; 5720 bKeybLayoutAltKeyWarningShown = TRUE;
5719 5721
5720 wchar_t szTmp [4096]; 5722 wchar_t szTmp [4096];
5721 wcscpy (szTmp, GetString ("ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION")); 5723 StringCbCopyW (szTmp, sizeof(szTmp), GetString ("ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION"));
5722 wcscat (szTmp, L"\n\n"); 5724 StringCbCatW (szTmp, sizeof(szTmp), L"\n\n");
5723 wcscat (szTmp, GetString ("KEYB_LAYOUT_SYS_ENC_EXPLANATION")); 5725 StringCbCatW (szTmp, sizeof(szTmp), GetString ("KEYB_LAYOUT_SYS_ENC_EXPLANATION"));
5724 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONINFORMATION | MB_SETFOREGROUND | MB_TOPMOST); 5726 MessageBoxW (MainDlg, szTmp, lpszTitle, MB_ICONINFORMATION | MB_SETFOREGROUND | MB_TOPMOST);
5725 } 5727 }
5726 } 5728 }
@@ -6413,7 +6415,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
6413 6415
6414 GetWindowText (GetDlgItem (hCurPage, IDC_COMBO_BOX), szFileName, sizeof (szFileName)); 6416 GetWindowText (GetDlgItem (hCurPage, IDC_COMBO_BOX), szFileName, sizeof (szFileName));
6415 RelativePath2Absolute (szFileName); 6417 RelativePath2Absolute (szFileName);
6416 CreateFullVolumePath (szDiskFile, szFileName, &tmpbDevice); 6418 CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), szFileName, &tmpbDevice);
6417 6419
6418 if (tmpbDevice != bDevice) 6420 if (tmpbDevice != bDevice)
6419 { 6421 {
@@ -6885,7 +6887,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
6885 } 6887 }
6886 else if (DeferredNonSysInPlaceEncDevices.size() == 1) 6888 else if (DeferredNonSysInPlaceEncDevices.size() == 1)
6887 { 6889 {
6888 CreateFullVolumePath (szDiskFile, DeferredNonSysInPlaceEncDevices.front().Path.c_str(), &tmpbDevice); 6890 CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), DeferredNonSysInPlaceEncDevices.front().Path.c_str(), &tmpbDevice);
6889 6891
6890 nVolumeSize = GetDeviceSize (szDiskFile); 6892 nVolumeSize = GetDeviceSize (szDiskFile);
6891 if (nVolumeSize == -1) 6893 if (nVolumeSize == -1)
@@ -7042,7 +7044,7 @@ retryCDDriveCheck:
7042 { 7044 {
7043 wchar_t szTmp[8000]; 7045 wchar_t szTmp[8000];
7044 7046
7045 swprintf (szTmp, GetString ("RESCUE_DISK_CHECK_FAILED"), 7047 StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("RESCUE_DISK_CHECK_FAILED"),
7046 IsWindowsIsoBurnerAvailable () ? L"" : GetString ("RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX")); 7048 IsWindowsIsoBurnerAvailable () ? L"" : GetString ("RESCUE_DISK_CHECK_FAILED_SENTENCE_APPENDIX"));
7047 7049
7048 ErrorDirect (szTmp); 7050 ErrorDirect (szTmp);
@@ -7592,7 +7594,7 @@ ovf_end:
7592 BOOL tmpbDevice; 7594 BOOL tmpbDevice;
7593 7595
7594 GetWindowText (GetDlgItem (hCurPage, IDC_COMBO_BOX), szFileName, sizeof (szFileName)); 7596 GetWindowText (GetDlgItem (hCurPage, IDC_COMBO_BOX), szFileName, sizeof (szFileName));
7595 CreateFullVolumePath (szDiskFile, szFileName, &tmpbDevice); 7597 CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), szFileName, &tmpbDevice);
7596 7598
7597 if (tmpbDevice == bDevice) 7599 if (tmpbDevice == bDevice)
7598 { 7600 {