From nobody Sun May 5 15:14:27 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+49327+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+49327+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1571728403; cv=none; d=zoho.com; s=zohoarc; b=nPdVxpJxO7suBCjXxrewoLJlRZh9ZwwU8KVVM1VObFxRFqsTB72zzsMkqgvgs2G1YTQokqehiwgDcd1kYcPxRBt2gHfWM545Jk41T09Fm4Kabh7zuHNrbGUvtWbNllrc56XdnGrkFhvInuDYwiD4uwAQr3oKj4JT+wIZzrYO9k0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571728403; h=Content-Type:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=pCEsclbiqxQx8GbAREehhl3NtpxY3k/6bNA8rRht2js=; b=QqtjwCMf0lIqBMteq8SPuLX2kqOQ4OcVRCZDguDxwgobbC7ptBN7PeqvX23ArGpJZxwRkFpHJBb1v0AN6IFJkqbPZEsSiv+Uh0w9g5EfOa4sSe3LdUZL35S3dNUirHQv16/r7PTc8EBHUDLUSFtsfM+shKro1lcfsN8BOB3z94A= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+49327+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1571728403248936.1836344748147; Tue, 22 Oct 2019 00:13:23 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id lfh4YY1788612x1ZLEuvpmKa; Tue, 22 Oct 2019 00:13:22 -0700 X-Received: from mail1.protonmail.ch (mail1.protonmail.ch [185.70.40.18]) by mx.groups.io with SMTP id smtpd.web11.2267.1571728398443993693 for ; Tue, 22 Oct 2019 00:13:21 -0700 Date: Tue, 22 Oct 2019 07:13:13 +0000 To: devel@edk2.groups.io From: "Vitaly Cheptsov via Groups.Io" Reply-To: devel@edk2.groups.io,vit9696@protonmail.com Subject: [edk2-devel] [PATCH v2 1/1] MdePkg: Add PCD to disable safe string constraint assertions Message-ID: <20191022071310.18719-2-vit9696@protonmail.com> In-Reply-To: <20191022071310.18719-1-vit9696@protonmail.com> References: <20191022071310.18719-1-vit9696@protonmail.com> Feedback-ID: p9QuX-L1wMgUm6nrSvNrf8juLupNs0VSnzXGVXuYDxlEahFdWtaedWDMB9zpwGDklGt7kzs1-RBc0cqz327Gcg==:Ext:ProtonMail MIME-Version: 1.0 X-Spam-Status: No, score=-0.7 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,FREEMAIL_REPLYTO_END_DIGIT autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.protonmail.ch Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io X-Gm-Message-State: 5cSkd9S616QBjWuCdVz1EE11x1787277AA= Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha256; boundary="---------------------0310f9fd6880631d240b66b5a1ad6284"; charset=UTF-8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1571728402; bh=9PnzaYfD5YTjXFnU5lNV/W2A9cRsOsjXQqCoI+crZ5g=; h=Content-Type:Date:From:Reply-To:Subject:To; b=AgeFwhvHb78C1lUzsamoaLJ9ei/s2r8lvktrePPcRGZqpwLp90Mirl8A5g+xwxOE2W8 CWsnUMrUsbb+R9hXYrt9v3zIOrj8HiysOmKWC6+qm3uhOkdcnyHvDd3or15ym8r4Kry9l Jc7NyRuSFmlgSNFOfVtpsZnTLs5ymIRHT5U= X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: pass (identity @groups.io) -----------------------0310f9fd6880631d240b66b5a1ad6284 Content-Transfer-Encoding: quoted-printable Date: Tue, 22 Oct 2019 10:13:10 +0300 From: Vitaly Cheptsov In-Reply-To: <20191022071310.18719-1-vit9696@protonmail.com> Message-Id: <20191022071310.18719-2-vit9696@protonmail.com> Mime-Version: 1.0 References: <20191022071310.18719-1-vit9696@protonmail.com> Subject: [PATCH v2 1/1] MdePkg: Add PCD to disable safe string constraint assertions To: devel@edk2.groups.io X-Mailer: git-send-email 2.21.0 (Apple Git-122) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2054 Runtime data checks are not meant to cause debug assertions unless explicitly needed by some debug code (thus the PCD) as this breaks debug builds validating data with BaseLib. Signed-off-by: Vitaly Cheptsov > --- MdePkg/MdePkg.dec | 6 ++++++ MdePkg/Library/BaseLib/BaseLib.inf | 11 ++++++----- MdePkg/Library/BaseLib/SafeString.c | 4 +++- MdePkg/MdePkg.uni | 6 ++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index 3fd7d1634c..c1671333f6 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -2221,6 +2221,12 @@ [PcdsFixedAtBuild,PcdsPatchableInModule] # @Prompt Memory Address of GuidedExtractHandler Table. gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000000|U= INT64|0x30001015 =20 + ## Indicates if safe string constraint violation should assert.

+ # TRUE - Safe string constraint violation causes assertion.
+ # FALSE - Safe string constraint violation does not cause assertion. + # @Prompt Enable safe string constraint violation assertions. + gEfiMdePkgTokenSpaceGuid.PcdAssertOnSafeStringConstraints|TRUE|BOOLEAN|0= x0000002e + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## This value is used to set the base address of PCI express hierarchy. # @Prompt PCI Express Base Address. diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/Ba= seLib.inf index 3586beb0ab..bc98bc6134 100644 --- a/MdePkg/Library/BaseLib/BaseLib.inf +++ b/MdePkg/Library/BaseLib/BaseLib.inf @@ -390,11 +390,12 @@ [LibraryClasses] BaseMemoryLib =20 [Pcd] - gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMETIMES_CO= NSUMES - gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CO= NSUMES - gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CO= NSUMES - gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask ## SOME= TIMES_CONSUMES - gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType ## SOMETIMES_CO= NSUMES + gEfiMdePkgTokenSpaceGuid.PcdAssertOnSafeStringConstraints ## SOMET= IMES_CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMET= IMES_CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMET= IMES_CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMET= IMES_CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask ## SOMET= IMES_CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType ## SOMET= IMES_CONSUMES =20 [FeaturePcd] gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList ## CONSUMES diff --git a/MdePkg/Library/BaseLib/SafeString.c b/MdePkg/Library/BaseLib/S= afeString.c index 7dc03d2caa..56b5e34a8d 100644 --- a/MdePkg/Library/BaseLib/SafeString.c +++ b/MdePkg/Library/BaseLib/SafeString.c @@ -14,7 +14,9 @@ =20 #define SAFE_STRING_CONSTRAINT_CHECK(Expression, Status) \ do { \ - ASSERT (Expression); \ + if (PcdGetBool (PcdAssertOnSafeStringConstraints)) { \ + ASSERT (Expression); \ + } \ if (!(Expression)) { \ return Status; \ } \ diff --git a/MdePkg/MdePkg.uni b/MdePkg/MdePkg.uni index 5c1fa24065..425b66bb43 100644 --- a/MdePkg/MdePkg.uni +++ b/MdePkg/MdePkg.uni @@ -287,6 +287,12 @@ =20 #string STR_gEfiMdePkgTokenSpaceGuid_PcdGuidedExtractHandlerTableAddress_H= ELP #language en-US "This value is used to set the available memory addres= s to store Guided Extract Handlers. The required memory space is decided by= the value of PcdMaximumGuidedExtractHandler." =20 +#string STR_gEfiMdePkgTokenSpaceGuid_PcdAssertOnSafeStringConstraints_PROM= PT #language en-US "Enable safe string constraint violation assertions" + +#string STR_gEfiMdePkgTokenSpaceGuid_PcdAssertOnSafeStringConstraints_HELP= #language en-US "Indicates if safe string constraint violation should ass= ert.

\n" + = "TRUE - Safe string constraint violation causes assertion.
\n" + = "FALSE - Safe string constraint violation does not cause assertion= .
" + #string STR_gEfiMdePkgTokenSpaceGuid_PcdPciExpressBaseAddress_PROMPT #lan= guage en-US "PCI Express Base Address" =20 #string STR_gEfiMdePkgTokenSpaceGuid_PcdPciExpressBaseAddress_HELP #langu= age en-US "This value is used to set the base address of PCI express hierar= chy." --=20 2.21.0 (Apple Git-122) -=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 (#49327): https://edk2.groups.io/g/devel/message/49327 Mute This Topic: https://groups.io/mt/36392292/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- -----------------------0310f9fd6880631d240b66b5a1ad6284 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wsBmBAEBCAAQBQJdrqwJCRBPsoxt7Hy0xQAKCRBPsoxt7Hy0xbZ5CAAkb0jR ka9eS0s60Ig1nI86scPIpf1726U0ryOUkCyuFQr/9uakHZF4bnuEB8or97Ic smtSXAZAsOQpHpM3zSkF91Y6M5vPGDQ+PXn5DMQEn6O/lx90z9Ir/qoYaCt6 2s+Dt5uBUON+8R/P6W4BZ0kL0tSopOGHVrWEV+nFGlQ0y3ULTaPopyx6SA8d ErkTeKt+GBkj1Jm+r0tr6PwxuCWTHb4ZrUS0L1Bau+HLRT8Zq2j6K2sr2K1S ZXdDFMEXlP81dGSMDvLk9m2tGBGb8/JquBoaeXUbJ4rdM1FEHhKAEi+H5MRx MiWEKVNJ4exDGJcaR5YslL1vTa1oX/HPRF4Z =3d2e -----END PGP SIGNATURE----- -----------------------0310f9fd6880631d240b66b5a1ad6284--