From nobody Thu May 2 23:36:14 2024 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+78888+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+78888+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=posteo.de ARC-Seal: i=1; a=rsa-sha256; t=1628451639; cv=none; d=zohomail.com; s=zohoarc; b=b/ognFM2psywulZAAo43ftdQMZG7kgPBTwyfr6wA314pa987WWv0ik4Fxj9qcMLEgrvgHSMYIUf58so/QUpizdx96MhaOFimCMGmx/cmQN62oizBurcdqYE7fdSiwBu4Ysa5jRRbOpKQc59T7LW5Yvtces+NQOjIlnE9kb4eBf0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628451639; h=Content-Type: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=Jo8VRClPzelewT43vE5fIwzTsN6JyLcDO8l+E9NPExU=; b=INtJniZrNRoXm6xQHZB10RCvyWrC0MY/KZdA5icVbQuIf3TXs5tKDerRtRNxs84qIyYHiKS0rD1oWGWTY4YxMt9mj5CoOR/NsuSRA7DGxcDjhj2v309RjMS4OS/pZCI1ECZkgMKZUzsT8rcz3agVloulLtyQOGHQmPmYLIoBnoQ= 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+78888+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 1628451639745260.3141648795619; Sun, 8 Aug 2021 12:40:39 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id dQ1pYY1788612xmYloJFjGo5; Sun, 08 Aug 2021 12:40:39 -0700 X-Received: from mout02.posteo.de (mout02.posteo.de [185.67.36.66]) by mx.groups.io with SMTP id smtpd.web11.13764.1628451638480888647 for ; Sun, 08 Aug 2021 12:40:38 -0700 X-Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id C0F5524010A for ; Sun, 8 Aug 2021 21:40:36 +0200 (CEST) X-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4GjV1c2611z6tmD; Sun, 8 Aug 2021 21:40:36 +0200 (CEST) From: =?UTF-8?B?TWFydmluIEjDpHVzZXI=?= To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Vitaly Cheptsov Subject: [edk2-devel] [PATCH] MdePkg/BaseLib: Fix unaligned API prototypes Date: Sun, 8 Aug 2021 19:39:46 +0000 Message-Id: In-Reply-To: <5df11a13422732b9c03c120775a2b4dd0a49182f.1628444003.git.mhaeuser@posteo.de> References: <5df11a13422732b9c03c120775a2b4dd0a49182f.1628444003.git.mhaeuser@posteo.de> 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,mhaeuser@posteo.de X-Gm-Message-State: OLSWohaCLOO1s6S3nMXdPr1Sx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1628451639; bh=CiLP0eQAwPQ3HCjCC0kmn3np26FMRnjr76r9eNkRHdc=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=CO17w9UYCVWOn5hI2NwS8YYRN/P/XoKhIt/DJ9cu6l9293xF7MOsecU5ZckidSrF+1S CmW77pHX8W0QHd4ABK0tVKCcMgSgmb2XS7QrWH9MmhOXEfjur6JM5upN6FZMPlp21slNu XaH0qRKlqvw+F4uHTJbbf/ssqeQ37NIDxfA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1628451641698100049 Content-Type: text/plain; charset="utf-8" C prohibits not only dereferencing but also casting to unaligned pointers. Thus, the current set of unaligned APIs cannot be called safely. Update their prototypes to take VOID * pointers, which must be able to represent any valid pointer. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Vitaly Cheptsov Signed-off-by: Marvin H=C3=A4user --- MdePkg/Library/BaseLib/Arm/Unaligned.c | 14 ++++----- MdePkg/Library/BaseLib/Unaligned.c | 32 ++++++++++---------- MdePkg/Include/Library/BaseLib.h | 16 +++++----- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/MdePkg/Library/BaseLib/Arm/Unaligned.c b/MdePkg/Library/BaseLi= b/Arm/Unaligned.c index e9934e7003cb..57f19fc44e0b 100644 --- a/MdePkg/Library/BaseLib/Arm/Unaligned.c +++ b/MdePkg/Library/BaseLib/Arm/Unaligned.c @@ -59,7 +59,7 @@ ReadUnaligned16 ( UINT16 EFIAPI WriteUnaligned16 ( - OUT UINT16 *Buffer, + OUT VOID *Buffer, IN UINT16 Value ) { @@ -87,7 +87,7 @@ WriteUnaligned16 ( UINT32 EFIAPI ReadUnaligned24 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ) { ASSERT (Buffer !=3D NULL); @@ -116,7 +116,7 @@ ReadUnaligned24 ( UINT32 EFIAPI WriteUnaligned24 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ) { @@ -143,7 +143,7 @@ WriteUnaligned24 ( UINT32 EFIAPI ReadUnaligned32 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ) { UINT16 LowerBytes; @@ -175,7 +175,7 @@ ReadUnaligned32 ( UINT32 EFIAPI WriteUnaligned32 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ) { @@ -202,7 +202,7 @@ WriteUnaligned32 ( UINT64 EFIAPI ReadUnaligned64 ( - IN CONST UINT64 *Buffer + IN CONST VOID *Buffer ) { UINT32 LowerBytes; @@ -234,7 +234,7 @@ ReadUnaligned64 ( UINT64 EFIAPI WriteUnaligned64 ( - OUT UINT64 *Buffer, + OUT VOID *Buffer, IN UINT64 Value ) { diff --git a/MdePkg/Library/BaseLib/Unaligned.c b/MdePkg/Library/BaseLib/Un= aligned.c index a419cb85e53c..3041adcde606 100644 --- a/MdePkg/Library/BaseLib/Unaligned.c +++ b/MdePkg/Library/BaseLib/Unaligned.c @@ -26,12 +26,12 @@ UINT16 EFIAPI ReadUnaligned16 ( - IN CONST UINT16 *Buffer + IN CONST VOID *Buffer ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer; + return *(CONST UINT16 *) Buffer; } =20 /** @@ -52,13 +52,13 @@ ReadUnaligned16 ( UINT16 EFIAPI WriteUnaligned16 ( - OUT UINT16 *Buffer, + OUT VOID *Buffer, IN UINT16 Value ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer =3D Value; + return *(UINT16 *) Buffer =3D Value; } =20 /** @@ -77,12 +77,12 @@ WriteUnaligned16 ( UINT32 EFIAPI ReadUnaligned24 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer & 0xffffff; + return *(CONST UINT32 *) Buffer & 0xffffff; } =20 /** @@ -103,13 +103,13 @@ ReadUnaligned24 ( UINT32 EFIAPI WriteUnaligned24 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ) { ASSERT (Buffer !=3D NULL); =20 - *Buffer =3D BitFieldWrite32 (*Buffer, 0, 23, Value); + *(UINT32 *) Buffer =3D BitFieldWrite32 (*(CONST UINT32 *) Buffer, 0, 23,= Value); return Value; } =20 @@ -129,12 +129,12 @@ WriteUnaligned24 ( UINT32 EFIAPI ReadUnaligned32 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer; + return *(CONST UINT32 *) Buffer; } =20 /** @@ -155,13 +155,13 @@ ReadUnaligned32 ( UINT32 EFIAPI WriteUnaligned32 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer =3D Value; + return *(UINT32 *) Buffer =3D Value; } =20 /** @@ -180,12 +180,12 @@ WriteUnaligned32 ( UINT64 EFIAPI ReadUnaligned64 ( - IN CONST UINT64 *Buffer + IN CONST VOID *Buffer ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer; + return *(CONST UINT64 *) Buffer; } =20 /** @@ -206,11 +206,11 @@ ReadUnaligned64 ( UINT64 EFIAPI WriteUnaligned64 ( - OUT UINT64 *Buffer, + OUT VOID *Buffer, IN UINT64 Value ) { ASSERT (Buffer !=3D NULL); =20 - return *Buffer =3D Value; + return *(UINT64 *) Buffer =3D Value; } diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/Base= Lib.h index 2452c1d92e51..4d30f0539c6b 100644 --- a/MdePkg/Include/Library/BaseLib.h +++ b/MdePkg/Include/Library/BaseLib.h @@ -3420,7 +3420,7 @@ DivS64x64Remainder ( UINT16 EFIAPI ReadUnaligned16 ( - IN CONST UINT16 *Buffer + IN CONST VOID *Buffer ); =20 =20 @@ -3442,7 +3442,7 @@ ReadUnaligned16 ( UINT16 EFIAPI WriteUnaligned16 ( - OUT UINT16 *Buffer, + OUT VOID *Buffer, IN UINT16 Value ); =20 @@ -3463,7 +3463,7 @@ WriteUnaligned16 ( UINT32 EFIAPI ReadUnaligned24 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ); =20 =20 @@ -3485,7 +3485,7 @@ ReadUnaligned24 ( UINT32 EFIAPI WriteUnaligned24 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ); =20 @@ -3506,7 +3506,7 @@ WriteUnaligned24 ( UINT32 EFIAPI ReadUnaligned32 ( - IN CONST UINT32 *Buffer + IN CONST VOID *Buffer ); =20 =20 @@ -3528,7 +3528,7 @@ ReadUnaligned32 ( UINT32 EFIAPI WriteUnaligned32 ( - OUT UINT32 *Buffer, + OUT VOID *Buffer, IN UINT32 Value ); =20 @@ -3549,7 +3549,7 @@ WriteUnaligned32 ( UINT64 EFIAPI ReadUnaligned64 ( - IN CONST UINT64 *Buffer + IN CONST VOID *Buffer ); =20 =20 @@ -3571,7 +3571,7 @@ ReadUnaligned64 ( UINT64 EFIAPI WriteUnaligned64 ( - OUT UINT64 *Buffer, + OUT VOID *Buffer, IN UINT64 Value ); =20 --=20 2.31.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 (#78888): https://edk2.groups.io/g/devel/message/78888 Mute This Topic: https://groups.io/mt/84754062/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-