mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows: Avoid modifying BootArguments structure and use __unaligned keyword to inform compiler that pointer is unaligned.
This avoids issues with existing bootloaders
This commit is contained in:
@@ -14,7 +14,6 @@
|
|||||||
#define TC_HEADER_Boot_BootCommon
|
#define TC_HEADER_Boot_BootCommon
|
||||||
|
|
||||||
#include "Common/Password.h"
|
#include "Common/Password.h"
|
||||||
#include "Crypto/config.h"
|
|
||||||
#include "BootDefs.h"
|
#include "BootDefs.h"
|
||||||
|
|
||||||
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
|
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
|
||||||
@@ -59,7 +58,7 @@ typedef struct
|
|||||||
uint16 CryptoInfoOffset;
|
uint16 CryptoInfoOffset;
|
||||||
uint16 CryptoInfoLength;
|
uint16 CryptoInfoLength;
|
||||||
uint32 HeaderSaltCrc32;
|
uint32 HeaderSaltCrc32;
|
||||||
CRYPTOPP_ALIGN_DATA(8) PasswordLegacy BootPassword;
|
PasswordLegacy BootPassword;
|
||||||
uint64 HiddenSystemPartitionStart;
|
uint64 HiddenSystemPartitionStart;
|
||||||
uint64 DecoySystemPartitionStart;
|
uint64 DecoySystemPartitionStart;
|
||||||
uint32 Flags;
|
uint32 Flags;
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ void AddPasswordToCache (Password *password, int pim, BOOL bCachePim)
|
|||||||
burn (&tmpPass, sizeof (Password));
|
burn (&tmpPass, sizeof (Password));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddLegacyPasswordToCache (PasswordLegacy *password, int pim)
|
void AddLegacyPasswordToCache (__unaligned PasswordLegacy *password, int pim)
|
||||||
{
|
{
|
||||||
Password inputPass = {0};
|
Password inputPass = {0};
|
||||||
inputPass.Length = password->Length;
|
inputPass.Length = password->Length;
|
||||||
|
|||||||
@@ -21,6 +21,6 @@
|
|||||||
extern int cacheEmpty;
|
extern int cacheEmpty;
|
||||||
|
|
||||||
void AddPasswordToCache (Password *password, int pim, BOOL bCachePim);
|
void AddPasswordToCache (Password *password, int pim, BOOL bCachePim);
|
||||||
void AddLegacyPasswordToCache (PasswordLegacy *password, int pim);
|
void AddLegacyPasswordToCache (__unaligned PasswordLegacy *password, int pim);
|
||||||
int ReadVolumeHeaderWCache (BOOL bBoot, BOOL bCache, BOOL bCachePim, unsigned char *header, Password *password, int pkcs5_prf, int pim, PCRYPTO_INFO *retInfo);
|
int ReadVolumeHeaderWCache (BOOL bBoot, BOOL bCache, BOOL bCachePim, unsigned char *header, Password *password, int pkcs5_prf, int pim, PCRYPTO_INFO *retInfo);
|
||||||
void WipeCache (void);
|
void WipeCache (void);
|
||||||
|
|||||||
@@ -411,7 +411,7 @@ static void ComputeBootLoaderFingerprint(PDEVICE_OBJECT LowerDeviceObject, uint8
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password, uint32 *headerSaltCrc32)
|
static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password, __unaligned uint32 *headerSaltCrc32)
|
||||||
{
|
{
|
||||||
BOOL hiddenVolume = (BootArgs.HiddenSystemPartitionStart != 0);
|
BOOL hiddenVolume = (BootArgs.HiddenSystemPartitionStart != 0);
|
||||||
int64 hiddenHeaderOffset = BootArgs.HiddenSystemPartitionStart + TC_HIDDEN_VOLUME_HEADER_OFFSET;
|
int64 hiddenHeaderOffset = BootArgs.HiddenSystemPartitionStart + TC_HIDDEN_VOLUME_HEADER_OFFSET;
|
||||||
|
|||||||
Reference in New Issue
Block a user