SecurityPkg/Library/SecureBootVariableLib: Fix VS20xx 4122 errors

The unit test code for the SecureBootVariableLib is initializing
local variable structures in their declaration from other local
variables that are also initialized in their declaration.  ANSI C
does not allow this and error 4122 is generated on VS20xx compilers.

The test cases are updated to initialize the local structure
fields in C statements instead of their local variable declaration.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Oliver Smith-Denny <osde@linux.microsoft.com>
This commit is contained in:
Michael D Kinney 2023-03-23 19:29:03 -07:00 committed by mergify[bot]
parent c28c16e7c4
commit 0657e74116
1 changed files with 83 additions and 87 deletions

View File

@ -351,10 +351,10 @@ SecureBootCreateDataFromInputSimple (
UINTN SigListSize = 0; UINTN SigListSize = 0;
EFI_STATUS Status; EFI_STATUS Status;
UINT8 TestData[] = { 0 }; UINT8 TestData[] = { 0 };
SECURE_BOOT_CERTIFICATE_INFO KeyInfo = { SECURE_BOOT_CERTIFICATE_INFO KeyInfo;
.Data = TestData,
.DataSize = sizeof (TestData) KeyInfo.Data = TestData;
}; KeyInfo.DataSize = sizeof (TestData);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 1, &KeyInfo); Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 1, &KeyInfo);
@ -441,16 +441,12 @@ SecureBootCreateDataFromInputMultiple (
UINT8 TestData1[] = { 0 }; UINT8 TestData1[] = { 0 };
UINT8 TestData2[] = { 1, 2 }; UINT8 TestData2[] = { 1, 2 };
EFI_STATUS Status; EFI_STATUS Status;
SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2] = { SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2];
{
.Data = TestData1, KeyInfo[0].Data = TestData1;
.DataSize = sizeof (TestData1) KeyInfo[0].DataSize = sizeof (TestData1);
}, KeyInfo[1].Data = TestData2;
{ KeyInfo[1].DataSize = sizeof (TestData2);
.Data = TestData2,
.DataSize = sizeof (TestData2)
}
};
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 2, KeyInfo); Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 2, KeyInfo);
UT_ASSERT_NOT_EFI_ERROR (Status); UT_ASSERT_NOT_EFI_ERROR (Status);
@ -1219,19 +1215,19 @@ SetSecureBootVariablesShouldComplete (
UINT8 PkDummy = 0xFE; UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.DbtPtr = &DbtDummy, PayloadInfo.DbxSize = sizeof (DbxDummy);
.DbtSize = sizeof (DbtDummy), PayloadInfo.DbtPtr = &DbtDummy;
.KekPtr = &KekDummy, PayloadInfo.DbtSize = sizeof (DbtDummy);
.KekSize = sizeof (KekDummy), PayloadInfo.KekPtr = &KekDummy;
.PkPtr = &PkDummy, PayloadInfo.KekSize = sizeof (KekDummy);
.PkSize = sizeof (PkDummy), PayloadInfo.PkPtr = &PkDummy;
.SecureBootKeyName = L"Food" PayloadInfo.PkSize = sizeof (PkDummy);
}; PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1385,11 +1381,11 @@ SetSecureBootVariablesShouldStopFailDBX (
UINT8 DbxDummy = 0xBE; UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbxDummy); UINTN PayloadSize = sizeof (DbxDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbxPtr = &DbxDummy,
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.SecureBootKeyName = L"Fail DBX" PayloadInfo.DbxSize = sizeof (DbxDummy);
}; PayloadInfo.SecureBootKeyName = L"Fail DBX";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1442,13 +1438,13 @@ SetSecureBootVariablesShouldStopFailDB (
UINT8 DbxDummy = 0xBE; UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.SecureBootKeyName = L"Fail DB" PayloadInfo.DbxSize = sizeof (DbxDummy);
}; PayloadInfo.SecureBootKeyName = L"Fail DB";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1516,15 +1512,15 @@ SetSecureBootVariablesShouldStopFailDBT (
UINT8 DbxDummy = 0xBE; UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.DbtPtr = &DbtDummy, PayloadInfo.DbxSize = sizeof (DbxDummy);
.DbtSize = sizeof (DbtDummy), PayloadInfo.DbtPtr = &DbtDummy;
.SecureBootKeyName = L"Fail DBT" PayloadInfo.DbtSize = sizeof (DbtDummy);
}; PayloadInfo.SecureBootKeyName = L"Fail DBT";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1608,19 +1604,19 @@ SetSecureBootVariablesShouldStopFailKEK (
UINT8 PkDummy = 0xFE; UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.DbtPtr = &DbtDummy, PayloadInfo.DbxSize = sizeof (DbxDummy);
.DbtSize = sizeof (DbtDummy), PayloadInfo.DbtPtr = &DbtDummy;
.KekPtr = &KekDummy, PayloadInfo.DbtSize = sizeof (DbtDummy);
.KekSize = sizeof (KekDummy), PayloadInfo.KekPtr = &KekDummy;
.PkPtr = &PkDummy, PayloadInfo.KekSize = sizeof (KekDummy);
.PkSize = sizeof (PkDummy), PayloadInfo.PkPtr = &PkDummy;
.SecureBootKeyName = L"Food" PayloadInfo.PkSize = sizeof (PkDummy);
}; PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1718,19 +1714,19 @@ SetSecureBootVariablesShouldStopFailPK (
UINT8 PkDummy = 0xFE; UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.DbtPtr = &DbtDummy, PayloadInfo.DbxSize = sizeof (DbxDummy);
.DbtSize = sizeof (DbtDummy), PayloadInfo.DbtPtr = &DbtDummy;
.KekPtr = &KekDummy, PayloadInfo.DbtSize = sizeof (DbtDummy);
.KekSize = sizeof (KekDummy), PayloadInfo.KekPtr = &KekDummy;
.PkPtr = &PkDummy, PayloadInfo.KekSize = sizeof (KekDummy);
.PkSize = sizeof (PkDummy), PayloadInfo.PkPtr = &PkDummy;
.SecureBootKeyName = L"Food" PayloadInfo.PkSize = sizeof (PkDummy);
}; PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@ -1841,19 +1837,19 @@ SetSecureBootVariablesDBTOptional (
UINT8 PkDummy = 0xFE; UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL; UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy); UINTN PayloadSize = sizeof (DbDummy);
SECURE_BOOT_PAYLOAD_INFO PayloadInfo = { SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
.DbPtr = &DbDummy,
.DbSize = sizeof (DbDummy), PayloadInfo.DbPtr = &DbDummy;
.DbxPtr = &DbxDummy, PayloadInfo.DbSize = sizeof (DbDummy);
.DbxSize = sizeof (DbxDummy), PayloadInfo.DbxPtr = &DbxDummy;
.DbtPtr = NULL, PayloadInfo.DbxSize = sizeof (DbxDummy);
.DbtSize = 0, PayloadInfo.DbtPtr = NULL;
.KekPtr = &KekDummy, PayloadInfo.DbtSize = 0;
.KekSize = sizeof (KekDummy), PayloadInfo.KekPtr = &KekDummy;
.PkPtr = &PkDummy, PayloadInfo.KekSize = sizeof (KekDummy);
.PkSize = sizeof (PkDummy), PayloadInfo.PkPtr = &PkDummy;
.SecureBootKeyName = L"Food" PayloadInfo.PkSize = sizeof (PkDummy);
}; PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);