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....@intel.com> Cc: Jian J Wang <jian.j.w...@intel.com> Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com> Reviewed-by: Jiewen Yao <jiewen....@intel.com> --- .../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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#102526): https://edk2.groups.io/g/devel/message/102526 Mute This Topic: https://groups.io/mt/98066300/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-