From nobody Mon Feb 9 01:19:32 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+102732+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+102732+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1680906064; cv=none; d=zohomail.com; s=zohoarc; b=PLKfwyWenuCcpn69Rli/oqSUMrRkQ9vUGK6pLFLC8mXld0A5ecGAKfxUB2nYzeKjpmktMqOP9S8nT6UqquzaZsF24fw0b02Yde+CCipv8FdsCjO7M5hOSUiQ2u65+W8fRBGrhp8lKc1+p7mgYo29rC7pjQ2sEGEwN3JtFG1KY6g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1680906064; 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=PtUNjCS4v1LOn9luPey6Xhn2Nxw9/Fvs5DVhOAqUw/E=; b=NeqkTxio58jk97CFZILXKtNqmpt4QUqfczuhdZH4mkrgoasOmTim2FLwPZJd/CSQal+WWSUNn0/8jISxlZf9PQhbP8iZDveN7QcQH7I0ThpdAiMjl9MpLd+l/xXZ9rzSly+mmupLc6n8nOQj0iyC/CVcvxPNh7cMsZe0WH7cPm4= 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+102732+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 1680906064194272.4046211693327; Fri, 7 Apr 2023 15:21:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 2oVHYY1788612xUvbt4GFiOS; Fri, 07 Apr 2023 15:21:03 -0700 X-Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.2854.1680906059556530823 for ; Fri, 07 Apr 2023 15:21:03 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10673"; a="343085665" X-IronPort-AV: E=Sophos;i="5.98,328,1673942400"; d="scan'208";a="343085665" X-Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2023 15:21:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10673"; a="690177480" X-IronPort-AV: E=Sophos;i="5.98,328,1673942400"; d="scan'208";a="690177480" X-Received: from mdkinney-mobl2.amr.corp.intel.com ([10.209.18.108]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2023 15:21:02 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Jiewen Yao , Jian J Wang , Oliver Smith-Denny Subject: [edk2-devel] [Patch v3 08/12] SecurityPkg/Library/SecureBootVariableLib: Fix VS20xx 4122 errors Date: Fri, 7 Apr 2023 15:20:46 -0700 Message-Id: <20230407222051.1095-9-michael.d.kinney@intel.com> In-Reply-To: <20230407222051.1095-1-michael.d.kinney@intel.com> References: <20230407222051.1095-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: OacCvAlVIYb7af14xqqJe6Ntx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680906063; bh=PpICG9Ezr+1diMph+lC76gj2EX30komAH2gWIwWwxmw=; h=Cc:Date:From:Reply-To:Subject:To; b=NDrPIZmolLTosoh6O3sUJxFL2QMkZMpSiuxGRwjRz+IC5LgE2vpCTaYp2pm/jPHC7u2 DOonZnZwMeUc+SzKdLVAV4mHdtdMaOwDLqIOliJgsN+E5+8K+evxOeLSsrPx2yadRFWMq Mrp0KCf7Gj3eU5DhlxYm7f2WBM9wXdc3nfM= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680906065457100032 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 Reviewed-by: Oliver Smith-Denny --- .../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 (#102732): https://edk2.groups.io/g/devel/message/102732 Mute This Topic: https://groups.io/mt/98134500/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-