mirror of
https://github.com/veracrypt/VeraCrypt
synced 2024-11-24 12:03:28 +01:00
Windows: Fix various issues detected by static analysis.
This commit is contained in:
parent
1bf219b0dc
commit
ce76957a10
@ -198,6 +198,9 @@ namespace VeraCrypt
|
||||
if (bstr)
|
||||
{
|
||||
CComBSTR inputBstr;
|
||||
CComBSTR fileBstr;
|
||||
fileBstr.Attach (bstr);
|
||||
|
||||
if (input && inputBstr.AppendBytes ((const char *) input, inputSize) != S_OK)
|
||||
{
|
||||
SetLastError (ERROR_INVALID_PARAMETER);
|
||||
@ -211,8 +214,6 @@ namespace VeraCrypt
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CComBSTR fileBstr;
|
||||
fileBstr.Attach (bstr);
|
||||
result = ElevatedComInstance->DeviceIoControl (readOnly, device, fileBstr, dwIoControlCode, inputBstr, &outputBstr);
|
||||
|
||||
if (output)
|
||||
@ -2071,6 +2072,8 @@ namespace VeraCrypt
|
||||
EfiBoot::EfiBoot() {
|
||||
ZeroMemory(EfiBootPartPath, sizeof(EfiBootPartPath));
|
||||
ZeroMemory (systemPartitionPath, sizeof (systemPartitionPath));
|
||||
ZeroMemory (&sdn, sizeof (sdn));
|
||||
ZeroMemory (&partInfo, sizeof (partInfo));
|
||||
m_bMounted = false;
|
||||
}
|
||||
|
||||
@ -2288,7 +2291,7 @@ namespace VeraCrypt
|
||||
wchar_t varName[256];
|
||||
StringCchPrintfW(varName, ARRAYSIZE (varName), L"%s%04X", type == NULL ? L"Boot" : type, statrtOrderNum);
|
||||
SetFirmwareEnvironmentVariable(varName, EfiVarGuid, startVar, varSize);
|
||||
delete startVar;
|
||||
delete [] startVar;
|
||||
|
||||
// Update order
|
||||
wstring order = L"Order";
|
||||
|
@ -686,7 +686,7 @@ typedef struct zlist {
|
||||
char iname[MAX_PATH]; // Internal file name after cleanup
|
||||
char zname[MAX_PATH]; // External version of internal name
|
||||
int mark; // Marker for files to operate on
|
||||
int trash; // Marker for files to delete
|
||||
// int trash; // Marker for files to delete
|
||||
int dosflag; // Set to force MSDOS file attributes
|
||||
struct zlist far *nxt; // Pointer to next header in list
|
||||
} TZipFileInfo;
|
||||
|
@ -75,19 +75,19 @@ static void xor_s_box(byte s_box[8][16], byte *seed)
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
s_box[1][i] ^= (seed[ (i * 4) + 0 ] ) & 0xF;
|
||||
s_box[2][i] ^= (seed[ (i * 4) + 0 ]>>4) & 0xF;
|
||||
s_box[3][i] ^= (seed[ (i * 4) + 1 ] ) & 0xF;
|
||||
s_box[4][i] ^= (seed[ (i * 4) + 1 ]>>4) & 0xF;
|
||||
s_box[5][i] ^= (seed[ (i * 4) + 2 ] ) & 0xF;
|
||||
s_box[6][i] ^= (seed[ (i * 4) + 2 ]>>4) & 0xF;
|
||||
s_box[7][i] ^= (seed[ (i * 4) + 3 ] ) & 0xF;
|
||||
s_box[8][i] ^= (seed[ (i * 4) + 3 ]>>4) & 0xF;
|
||||
s_box[0][i] ^= (seed[ (i * 4) + 0 ] ) & 0xF;
|
||||
s_box[1][i] ^= (seed[ (i * 4) + 0 ]>>4) & 0xF;
|
||||
s_box[2][i] ^= (seed[ (i * 4) + 1 ] ) & 0xF;
|
||||
s_box[3][i] ^= (seed[ (i * 4) + 1 ]>>4) & 0xF;
|
||||
s_box[4][i] ^= (seed[ (i * 4) + 2 ] ) & 0xF;
|
||||
s_box[5][i] ^= (seed[ (i * 4) + 2 ]>>4) & 0xF;
|
||||
s_box[6][i] ^= (seed[ (i * 4) + 3 ] ) & 0xF;
|
||||
s_box[7][i] ^= (seed[ (i * 4) + 3 ]>>4) & 0xF;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void gost_set_key(byte *key, gost_kds *ks)
|
||||
void gost_set_key(const byte *key, gost_kds *ks)
|
||||
{
|
||||
#ifdef GOST_DYNAMIC_SBOXES
|
||||
STREEBOG_CTX sctx;
|
||||
@ -228,11 +228,11 @@ void gost_decrypt_block(uint64 in_, uint64* out_, gost_kds* kds) {
|
||||
}
|
||||
|
||||
#if defined(_M_AMD64)
|
||||
void gost_encrypt_128_CBC_asm(byte *in, byte *out, gost_kds *ks, uint64 count);
|
||||
void gost_decrypt_128_CBC_asm(byte *in, byte *out, gost_kds *ks, uint64 count);
|
||||
void gost_encrypt_128_CBC_asm(const byte *in, byte *out, gost_kds *ks, uint64 count);
|
||||
void gost_decrypt_128_CBC_asm(const byte *in, byte *out, gost_kds *ks, uint64 count);
|
||||
#endif
|
||||
|
||||
void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count) {
|
||||
void gost_encrypt(const byte *in, byte *out, gost_kds *ks, int count) {
|
||||
#if defined(_M_AMD64)
|
||||
gost_encrypt_128_CBC_asm(in, out, ks, (uint64)count);
|
||||
#else
|
||||
@ -249,7 +249,7 @@ void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void gost_decrypt(byte *in, byte *out, gost_kds *ks, int count) {
|
||||
void gost_decrypt(const byte *in, byte *out, gost_kds *ks, int count) {
|
||||
#if defined(_M_AMD64)
|
||||
gost_decrypt_128_CBC_asm(in, out, ks, (uint64)count);
|
||||
#else
|
||||
|
@ -49,9 +49,9 @@ typedef struct gost_kds
|
||||
|
||||
#define GOST_KS (sizeof(gost_kds))
|
||||
|
||||
void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count);
|
||||
void gost_decrypt(byte *in, byte *out, gost_kds *ks, int count);
|
||||
void gost_set_key(byte *key, gost_kds *ks);
|
||||
void gost_encrypt(const byte *in, byte *out, gost_kds *ks, int count);
|
||||
void gost_decrypt(const byte *in, byte *out, gost_kds *ks, int count);
|
||||
void gost_set_key(const byte *key, gost_kds *ks);
|
||||
|
||||
#else
|
||||
#define GOST_KS (0)
|
||||
|
@ -2328,9 +2328,9 @@ stage3(STREEBOG_CTX *CTX)
|
||||
|
||||
memset(buf, 0x00, sizeof buf);
|
||||
#ifndef __GOST3411_BIG_ENDIAN__
|
||||
buf[0] = CTX->bufsize << 3;
|
||||
buf[0] = ((unsigned long long) CTX->bufsize) << 3;
|
||||
#else
|
||||
buf[0] = BSWAP64(CTX->bufsize << 3);
|
||||
buf[0] = BSWAP64(((unsigned long long) CTX->bufsize) << 3);
|
||||
#endif
|
||||
|
||||
pad(CTX);
|
||||
|
@ -279,7 +279,7 @@ static int Detect_MS_HyperV_AES ()
|
||||
|
||||
void DetectX86Features()
|
||||
{
|
||||
uint32 cpuid[4], cpuid1[4];
|
||||
uint32 cpuid[4] = {0}, cpuid1[4] = {0};
|
||||
if (!CpuId(0, cpuid))
|
||||
return;
|
||||
if (!CpuId(1, cpuid1))
|
||||
|
@ -9206,17 +9206,19 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
|
||||
{
|
||||
wchar_t szTmp [TC_MAX_PATH + 8000] = {0};
|
||||
|
||||
GetArgumentValue (lpszCommandLineArgs, &i, nNoCommandLineArgs, szTmp, ARRAYSIZE (szTmp));
|
||||
|
||||
if (wcslen (szTmp) < 1)
|
||||
if ((HAS_ARGUMENT == GetArgumentValue (lpszCommandLineArgs, &i, nNoCommandLineArgs, szTmp, ARRAYSIZE (szTmp)))
|
||||
&& (wcslen (szTmp) >= 1)
|
||||
)
|
||||
{
|
||||
memset (szFileName, 0, sizeof (szFileName));
|
||||
StringCbCopyW (szFileName, sizeof (szFileName), szTmp);
|
||||
DirectNonSysInplaceDecStartMode = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// No valid volume path specified as command-line parameter
|
||||
AbortProcess ("ERR_PARAMETER_INCORRECT");
|
||||
}
|
||||
|
||||
memset (szFileName, 0, sizeof (szFileName));
|
||||
StringCbCopyW (szFileName, sizeof (szFileName), szTmp);
|
||||
DirectNonSysInplaceDecStartMode = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -10980,6 +10980,8 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
|
||||
CheckDlgButton (hwndDlg, IDC_DISABLE_BOOT_LOADER_PIM_PROMPT, BST_UNCHECKED);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case IDC_DISABLE_BOOT_LOADER_OUTPUT:
|
||||
if ((IsDlgButtonChecked (hwndDlg, IDC_DISABLE_BOOT_LOADER_OUTPUT))
|
||||
&& AskWarnYesNo ("CUSTOM_BOOT_LOADER_MESSAGE_PROMPT", hwndDlg) == IDNO)
|
||||
|
Loading…
Reference in New Issue
Block a user