Date
1 - 2 of 2
[Patch 08/12] SecurityPkg/Library/SecureBootVariableLib: Fix VS20xx 4122 errors
Michael D Kinney
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@...>
Cc: Jian J Wang <jian.j.wang@...>
Signed-off-by: Michael D Kinney <michael.d.kinney@...>
---
.../UnitTest/SecureBootVariableLibUnitTest.c | 170 +++++++++---------
1 file changed, 83 insertions(+), 87 deletions(-)
diff --git a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
index 3a92d5d83457..e4cdc68bbb35 100644
--- a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
+++ b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
@@ -351,10 +351,10 @@ SecureBootCreateDataFromInputSimple (
UINTN SigListSize = 0;
EFI_STATUS Status;
UINT8 TestData[] = { 0 };
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo = {
- .Data = TestData,
- .DataSize = sizeof (TestData)
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo;
+
+ KeyInfo.Data = TestData;
+ KeyInfo.DataSize = sizeof (TestData);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 1, &KeyInfo);
@@ -441,16 +441,12 @@ SecureBootCreateDataFromInputMultiple (
UINT8 TestData1[] = { 0 };
UINT8 TestData2[] = { 1, 2 };
EFI_STATUS Status;
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2] = {
- {
- .Data = TestData1,
- .DataSize = sizeof (TestData1)
- },
- {
- .Data = TestData2,
- .DataSize = sizeof (TestData2)
- }
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2];
+
+ KeyInfo[0].Data = TestData1;
+ KeyInfo[0].DataSize = sizeof (TestData1);
+ KeyInfo[1].Data = TestData2;
+ KeyInfo[1].DataSize = sizeof (TestData2);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 2, KeyInfo);
UT_ASSERT_NOT_EFI_ERROR (Status);
@@ -1219,19 +1215,19 @@ SetSecureBootVariablesShouldComplete (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1385,11 +1381,11 @@ SetSecureBootVariablesShouldStopFailDBX (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbxDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DBX"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1442,13 +1438,13 @@ SetSecureBootVariablesShouldStopFailDB (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DB"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1516,15 +1512,15 @@ SetSecureBootVariablesShouldStopFailDBT (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .SecureBootKeyName = L"Fail DBT"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1608,19 +1604,19 @@ SetSecureBootVariablesShouldStopFailKEK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1718,19 +1714,19 @@ SetSecureBootVariablesShouldStopFailPK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1841,19 +1837,19 @@ SetSecureBootVariablesDBTOptional (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = NULL,
- .DbtSize = 0,
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = NULL;
+ PayloadInfo.DbtSize = 0;
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
--
2.39.1.windows.1
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@...>
Cc: Jian J Wang <jian.j.wang@...>
Signed-off-by: Michael D Kinney <michael.d.kinney@...>
---
.../UnitTest/SecureBootVariableLibUnitTest.c | 170 +++++++++---------
1 file changed, 83 insertions(+), 87 deletions(-)
diff --git a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
index 3a92d5d83457..e4cdc68bbb35 100644
--- a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
+++ b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLibUnitTest.c
@@ -351,10 +351,10 @@ SecureBootCreateDataFromInputSimple (
UINTN SigListSize = 0;
EFI_STATUS Status;
UINT8 TestData[] = { 0 };
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo = {
- .Data = TestData,
- .DataSize = sizeof (TestData)
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo;
+
+ KeyInfo.Data = TestData;
+ KeyInfo.DataSize = sizeof (TestData);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 1, &KeyInfo);
@@ -441,16 +441,12 @@ SecureBootCreateDataFromInputMultiple (
UINT8 TestData1[] = { 0 };
UINT8 TestData2[] = { 1, 2 };
EFI_STATUS Status;
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2] = {
- {
- .Data = TestData1,
- .DataSize = sizeof (TestData1)
- },
- {
- .Data = TestData2,
- .DataSize = sizeof (TestData2)
- }
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2];
+
+ KeyInfo[0].Data = TestData1;
+ KeyInfo[0].DataSize = sizeof (TestData1);
+ KeyInfo[1].Data = TestData2;
+ KeyInfo[1].DataSize = sizeof (TestData2);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 2, KeyInfo);
UT_ASSERT_NOT_EFI_ERROR (Status);
@@ -1219,19 +1215,19 @@ SetSecureBootVariablesShouldComplete (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1385,11 +1381,11 @@ SetSecureBootVariablesShouldStopFailDBX (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbxDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DBX"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1442,13 +1438,13 @@ SetSecureBootVariablesShouldStopFailDB (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DB"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1516,15 +1512,15 @@ SetSecureBootVariablesShouldStopFailDBT (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .SecureBootKeyName = L"Fail DBT"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1608,19 +1604,19 @@ SetSecureBootVariablesShouldStopFailKEK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1718,19 +1714,19 @@ SetSecureBootVariablesShouldStopFailPK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1841,19 +1837,19 @@ SetSecureBootVariablesDBTOptional (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = NULL,
- .DbtSize = 0,
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = NULL;
+ PayloadInfo.DbtSize = 0;
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME, sizeof (EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
--
2.39.1.windows.1
Yao, Jiewen
Reviewed-by: Jiewen Yao
toggle quoted message
Show quoted text
-----Original Message-----
From: Kinney, Michael D <michael.d.kinney@...>
Sent: Sunday, March 26, 2023 2:46 AM
To: devel@edk2.groups.io
Cc: Yao, Jiewen <jiewen.yao@...>; Wang, Jian J
<jian.j.wang@...>
Subject: [Patch 08/12] 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@...>
Cc: Jian J Wang <jian.j.wang@...>
Signed-off-by: Michael D Kinney <michael.d.kinney@...>
---
.../UnitTest/SecureBootVariableLibUnitTest.c | 170 +++++++++---------
1 file changed, 83 insertions(+), 87 deletions(-)
diff --git
a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLi
bUnitTest.c
b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLi
bUnitTest.c
index 3a92d5d83457..e4cdc68bbb35 100644
---
a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLi
bUnitTest.c
+++
b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariableLi
bUnitTest.c
@@ -351,10 +351,10 @@ SecureBootCreateDataFromInputSimple (
UINTN SigListSize = 0;
EFI_STATUS Status;
UINT8 TestData[] = { 0 };
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo = {
- .Data = TestData,
- .DataSize = sizeof (TestData)
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo;
+
+ KeyInfo.Data = TestData;
+ KeyInfo.DataSize = sizeof (TestData);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 1,
&KeyInfo);
@@ -441,16 +441,12 @@ SecureBootCreateDataFromInputMultiple (
UINT8 TestData1[] = { 0 };
UINT8 TestData2[] = { 1, 2 };
EFI_STATUS Status;
- SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2] = {
- {
- .Data = TestData1,
- .DataSize = sizeof (TestData1)
- },
- {
- .Data = TestData2,
- .DataSize = sizeof (TestData2)
- }
- };
+ SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2];
+
+ KeyInfo[0].Data = TestData1;
+ KeyInfo[0].DataSize = sizeof (TestData1);
+ KeyInfo[1].Data = TestData2;
+ KeyInfo[1].DataSize = sizeof (TestData2);
Status = SecureBootCreateDataFromInput (&SigListSize, &SigList, 2,
KeyInfo);
UT_ASSERT_NOT_EFI_ERROR (Status);
@@ -1219,19 +1215,19 @@ SetSecureBootVariablesShouldComplete (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName,
EFI_SECURE_BOOT_MODE_NAME, sizeof
(EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1385,11 +1381,11 @@ SetSecureBootVariablesShouldStopFailDBX (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbxDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DBX"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1442,13 +1438,13 @@ SetSecureBootVariablesShouldStopFailDB (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .SecureBootKeyName = L"Fail DB"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1516,15 +1512,15 @@ SetSecureBootVariablesShouldStopFailDBT (
UINT8 DbxDummy = 0xBE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .SecureBootKeyName = L"Fail DBT"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ 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_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1608,19 +1604,19 @@ SetSecureBootVariablesShouldStopFailKEK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName,
EFI_SECURE_BOOT_MODE_NAME, sizeof
(EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1718,19 +1714,19 @@ SetSecureBootVariablesShouldStopFailPK (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = &DbtDummy,
- .DbtSize = sizeof (DbtDummy),
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = &DbtDummy;
+ PayloadInfo.DbtSize = sizeof (DbtDummy);
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName,
EFI_SECURE_BOOT_MODE_NAME, sizeof
(EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
@@ -1841,19 +1837,19 @@ SetSecureBootVariablesDBTOptional (
UINT8 PkDummy = 0xFE;
UINT8 *Payload = NULL;
UINTN PayloadSize = sizeof (DbDummy);
- SECURE_BOOT_PAYLOAD_INFO PayloadInfo = {
- .DbPtr = &DbDummy,
- .DbSize = sizeof (DbDummy),
- .DbxPtr = &DbxDummy,
- .DbxSize = sizeof (DbxDummy),
- .DbtPtr = NULL,
- .DbtSize = 0,
- .KekPtr = &KekDummy,
- .KekSize = sizeof (KekDummy),
- .PkPtr = &PkDummy,
- .PkSize = sizeof (PkDummy),
- .SecureBootKeyName = L"Food"
- };
+ SECURE_BOOT_PAYLOAD_INFO PayloadInfo;
+
+ PayloadInfo.DbPtr = &DbDummy;
+ PayloadInfo.DbSize = sizeof (DbDummy);
+ PayloadInfo.DbxPtr = &DbxDummy;
+ PayloadInfo.DbxSize = sizeof (DbxDummy);
+ PayloadInfo.DbtPtr = NULL;
+ PayloadInfo.DbtSize = 0;
+ PayloadInfo.KekPtr = &KekDummy;
+ PayloadInfo.KekSize = sizeof (KekDummy);
+ PayloadInfo.PkPtr = &PkDummy;
+ PayloadInfo.PkSize = sizeof (PkDummy);
+ PayloadInfo.SecureBootKeyName = L"Food";
expect_memory (MockGetVariable, VariableName,
EFI_SECURE_BOOT_MODE_NAME, sizeof
(EFI_SECURE_BOOT_MODE_NAME));
expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid);
--
2.39.1.windows.1