1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00

Windows: correctly handle SEH exceptions during self-tests in order to disable CPU extended features in such case.

This commit is contained in:
Mounir IDRASSI
2017-07-04 11:19:53 +02:00
parent 0358eb6c71
commit 88cc8a00f4
6 changed files with 91 additions and 54 deletions

View File

@@ -153,7 +153,16 @@ NTSTATUS DriverEntry (PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
if (startKeyValue->Type == REG_DWORD && *((uint32 *) startKeyValue->Data) == SERVICE_BOOT_START)
{
if (!SelfTestsPassed)
TC_BUG_CHECK (STATUS_INVALID_PARAMETER);
{
// in case of system encryption, if self-tests fail, disable all extended CPU
// features and try again in order to workaround faulty configurations
DisableCPUExtendedFeatures ();
SelfTestsPassed = AutoTestAlgorithms();
// BUG CHECK if the self-tests still fail
if (!SelfTestsPassed)
TC_BUG_CHECK (STATUS_INVALID_PARAMETER);
}
LoadBootArguments();
VolumeClassFilterRegistered = IsVolumeClassFilterRegistered();