From nobody Sun Feb 8 19:02:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+102526+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102526+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1680632559; cv=none; d=zohomail.com; s=zohoarc; b=jzmVR2zKTrZ0dCZEcQgh0i5BHI8EWoZCbnpNvn90v0ETjs1oqCK0G2iHQpnhG9eqygnaMHWv56Xd+8jLR4NnnKSxmvJwul90yTP8K9ONLkGPy5YY8LLaXv8rxziquqHxTDIWd5DaKNraIw+wKrblRgUBI5sJjdQXih/hcGdifv4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1680632559; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=aVIsFsxxXRafg9NPLi7+NboQ+F+dfADzWRIwxkx05Ns=; b=TgBh2JIgtPlZ+aNWV5Jub70BDGOOx0RxLTrccqqVkKzms/nu+ORECBsoifhvX5rVOKjnQ2jf5MuTuO7WdPU/c8D8TpxmeOsJilZ9tm6/Xlq11Mq49cpU/idTDdH/uJ2C0Thz76F07SMYY3QmjlFQ5ntn3JZbtBhmH7I3FcPAoI8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+102526+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1680632559451497.2347861907066; Tue, 4 Apr 2023 11:22:39 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id MHrEYY1788612xWwlUoag8CJ; Tue, 04 Apr 2023 11:22:39 -0700 X-Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.109877.1680632553375816475 for ; Tue, 04 Apr 2023 11:22:34 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10670"; a="343978604" X-IronPort-AV: E=Sophos;i="5.98,318,1673942400"; d="scan'208";a="343978604" X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Apr 2023 11:22:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10670"; a="860686666" X-IronPort-AV: E=Sophos;i="5.98,318,1673942400"; d="scan'208";a="860686666" X-Received: from unknown (HELO mdkinney-MOBL2.amr.corp.intel.com) ([10.241.111.152]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Apr 2023 11:22:33 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Jiewen Yao , Jian J Wang Subject: [edk2-devel] [Patch v2 08/12] SecurityPkg/Library/SecureBootVariableLib: Fix VS20xx 4122 errors Date: Tue, 4 Apr 2023 11:22:16 -0700 Message-Id: <20230404182220.688-9-michael.d.kinney@intel.com> In-Reply-To: <20230404182220.688-1-michael.d.kinney@intel.com> References: <20230404182220.688-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com X-Gm-Message-State: xWQpEt28CGU7ta0RFnBJHnrRx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680632559; bh=s1s81JiDXZSfNH90+AFBRXgvg/9OMnalRYOGbPMj2W0=; h=Cc:Date:From:Reply-To:Subject:To; b=bHwqDXIrb8Fz3RaLnWmBpmyTGqUuaRihFNMlzgZgXJADhogpw2OR3+DIix34m3hRHVz GzVOdcYaQ+9WRSjBHb8qj2E66vnB80mXYyFqK+gBx2eWm3JW5a5mCIKZtXcAHamoiiDlK tqL+Fy30z71nRH8OJM9LMTqN7VsuxeLANGY= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680632560886100044 Content-Type: text/plain; charset="utf-8" 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 Cc: Jian J Wang Signed-off-by: Michael D Kinney Reviewed-by: Jiewen Yao --- .../UnitTest/SecureBootVariableLibUnitTest.c | 170 +++++++++--------- 1 file changed, 83 insertions(+), 87 deletions(-) diff --git a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootV= ariableLibUnitTest.c b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/S= ecureBootVariableLibUnitTest.c index 3a92d5d83457..e4cdc68bbb35 100644 --- a/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariable= LibUnitTest.c +++ b/SecurityPkg/Library/SecureBootVariableLib/UnitTest/SecureBootVariable= LibUnitTest.c @@ -351,10 +351,10 @@ SecureBootCreateDataFromInputSimple ( UINTN SigListSize =3D 0; EFI_STATUS Status; UINT8 TestData[] =3D { 0 }; - SECURE_BOOT_CERTIFICATE_INFO KeyInfo =3D { - .Data =3D TestData, - .DataSize =3D sizeof (TestData) - }; + SECURE_BOOT_CERTIFICATE_INFO KeyInfo; + + KeyInfo.Data =3D TestData; + KeyInfo.DataSize =3D sizeof (TestData); =20 Status =3D SecureBootCreateDataFromInput (&SigListSize, &SigList, 1, &Ke= yInfo); =20 @@ -441,16 +441,12 @@ SecureBootCreateDataFromInputMultiple ( UINT8 TestData1[] =3D { 0 }; UINT8 TestData2[] =3D { 1, 2 }; EFI_STATUS Status; - SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2] =3D { - { - .Data =3D TestData1, - .DataSize =3D sizeof (TestData1) - }, - { - .Data =3D TestData2, - .DataSize =3D sizeof (TestData2) - } - }; + SECURE_BOOT_CERTIFICATE_INFO KeyInfo[2]; + + KeyInfo[0].Data =3D TestData1; + KeyInfo[0].DataSize =3D sizeof (TestData1); + KeyInfo[1].Data =3D TestData2; + KeyInfo[1].DataSize =3D sizeof (TestData2); =20 Status =3D SecureBootCreateDataFromInput (&SigListSize, &SigList, 2, Key= Info); UT_ASSERT_NOT_EFI_ERROR (Status); @@ -1219,19 +1215,19 @@ SetSecureBootVariablesShouldComplete ( UINT8 PkDummy =3D 0xFE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .DbtPtr =3D &DbtDummy, - .DbtSize =3D sizeof (DbtDummy), - .KekPtr =3D &KekDummy, - .KekSize =3D sizeof (KekDummy), - .PkPtr =3D &PkDummy, - .PkSize =3D sizeof (PkDummy), - .SecureBootKeyName =3D L"Food" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.DbtPtr =3D &DbtDummy; + PayloadInfo.DbtSize =3D sizeof (DbtDummy); + PayloadInfo.KekPtr =3D &KekDummy; + PayloadInfo.KekSize =3D sizeof (KekDummy); + PayloadInfo.PkPtr =3D &PkDummy; + PayloadInfo.PkSize =3D sizeof (PkDummy); + PayloadInfo.SecureBootKeyName =3D L"Food"; =20 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 =3D 0xBE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbxDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .SecureBootKeyName =3D L"Fail DBX" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.SecureBootKeyName =3D L"Fail DBX"; =20 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 =3D 0xBE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .SecureBootKeyName =3D L"Fail DB" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.SecureBootKeyName =3D L"Fail DB"; =20 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 =3D 0xBE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .DbtPtr =3D &DbtDummy, - .DbtSize =3D sizeof (DbtDummy), - .SecureBootKeyName =3D L"Fail DBT" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.DbtPtr =3D &DbtDummy; + PayloadInfo.DbtSize =3D sizeof (DbtDummy); + PayloadInfo.SecureBootKeyName =3D L"Fail DBT"; =20 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 =3D 0xFE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .DbtPtr =3D &DbtDummy, - .DbtSize =3D sizeof (DbtDummy), - .KekPtr =3D &KekDummy, - .KekSize =3D sizeof (KekDummy), - .PkPtr =3D &PkDummy, - .PkSize =3D sizeof (PkDummy), - .SecureBootKeyName =3D L"Food" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.DbtPtr =3D &DbtDummy; + PayloadInfo.DbtSize =3D sizeof (DbtDummy); + PayloadInfo.KekPtr =3D &KekDummy; + PayloadInfo.KekSize =3D sizeof (KekDummy); + PayloadInfo.PkPtr =3D &PkDummy; + PayloadInfo.PkSize =3D sizeof (PkDummy); + PayloadInfo.SecureBootKeyName =3D L"Food"; =20 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 =3D 0xFE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .DbtPtr =3D &DbtDummy, - .DbtSize =3D sizeof (DbtDummy), - .KekPtr =3D &KekDummy, - .KekSize =3D sizeof (KekDummy), - .PkPtr =3D &PkDummy, - .PkSize =3D sizeof (PkDummy), - .SecureBootKeyName =3D L"Food" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.DbtPtr =3D &DbtDummy; + PayloadInfo.DbtSize =3D sizeof (DbtDummy); + PayloadInfo.KekPtr =3D &KekDummy; + PayloadInfo.KekSize =3D sizeof (KekDummy); + PayloadInfo.PkPtr =3D &PkDummy; + PayloadInfo.PkSize =3D sizeof (PkDummy); + PayloadInfo.SecureBootKeyName =3D L"Food"; =20 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 =3D 0xFE; UINT8 *Payload =3D NULL; UINTN PayloadSize =3D sizeof (DbDummy); - SECURE_BOOT_PAYLOAD_INFO PayloadInfo =3D { - .DbPtr =3D &DbDummy, - .DbSize =3D sizeof (DbDummy), - .DbxPtr =3D &DbxDummy, - .DbxSize =3D sizeof (DbxDummy), - .DbtPtr =3D NULL, - .DbtSize =3D 0, - .KekPtr =3D &KekDummy, - .KekSize =3D sizeof (KekDummy), - .PkPtr =3D &PkDummy, - .PkSize =3D sizeof (PkDummy), - .SecureBootKeyName =3D L"Food" - }; + SECURE_BOOT_PAYLOAD_INFO PayloadInfo; + + PayloadInfo.DbPtr =3D &DbDummy; + PayloadInfo.DbSize =3D sizeof (DbDummy); + PayloadInfo.DbxPtr =3D &DbxDummy; + PayloadInfo.DbxSize =3D sizeof (DbxDummy); + PayloadInfo.DbtPtr =3D NULL; + PayloadInfo.DbtSize =3D 0; + PayloadInfo.KekPtr =3D &KekDummy; + PayloadInfo.KekSize =3D sizeof (KekDummy); + PayloadInfo.PkPtr =3D &PkDummy; + PayloadInfo.PkSize =3D sizeof (PkDummy); + PayloadInfo.SecureBootKeyName =3D L"Food"; =20 expect_memory (MockGetVariable, VariableName, EFI_SECURE_BOOT_MODE_NAME,= sizeof (EFI_SECURE_BOOT_MODE_NAME)); expect_value (MockGetVariable, VendorGuid, &gEfiGlobalVariableGuid); --=20 2.39.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- 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/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076= /xyzzy [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-