From: "Ni, Ray" <ray.ni@intel.com>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Gao, Zhichao" <zhichao.gao@intel.com>,
"Anadani, Ahmad" <ahmad.anadani@intel.com>
Subject: Re: [Patch 1/1] ShellPkg/Library: Fix 32-bit truncation of pointer values
Date: Mon, 13 Mar 2023 01:48:56 +0000 [thread overview]
Message-ID: <MN6PR11MB8244EF84662A7B6BE14FDA128CB99@MN6PR11MB8244.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20230311201216.1856-1-michael.d.kinney@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Sunday, March 12, 2023 4:12 AM
> To: devel@edk2.groups.io
> Cc: Ni, Ray <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>
> Subject: [Patch 1/1] ShellPkg/Library: Fix 32-bit truncation of pointer values
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4366
>
> Update C and UNI files that are incorrectly using %x or %08x
> instead of %p for pointer values. On 64-bit systems, this is
> truncating pointer values above 4GB.
>
> In reviewing ShellPkg for this issue some unused UNI strings
> with incorrect format specifiers were removed instead of being
> fixed.
>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhichao Gao <zhichao.gao@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
> .../UefiHandleParsingLib.uni | 18 +++++------
> .../UefiShellDebug1CommandsLib.uni | 2 --
> .../Library/UefiShellDriver1CommandsLib/Dh.c | 2 +-
> .../UefiShellDriver1CommandsLib.uni | 31 +------------------
> .../UefiShellLevel2CommandsLib.uni | 3 +-
> 5 files changed, 12 insertions(+), 44 deletions(-)
>
> diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> index aa3396cea94d..6bcb3cd9e461 100644
> --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni
> @@ -173,7 +173,7 @@
> #string STR_HII #language en-US "HII"
> #string STR_HII_FORM_CALLBACK #language en-US "HIICallback"
>
> -#string STR_TXT_OUT_DUMP_HEADER #language en-US "
> Address: %%H%X%%N Attrib %02x"
> +#string STR_TXT_OUT_DUMP_HEADER #language en-US "
> Address: %%H%p%%N Attrib %02x"
> #string STR_TXT_OUT_DUMP_LINE #language en-US "\r\n %c mode %d:
> Col %d Row %d"
>
> #string STR_DRIVER_FAM_OVERRIDE #language en-US
> "DriverFamilyOverride"
> @@ -361,7 +361,7 @@
> #string STR_DEBUGSUPPORT_INFO #language en-US " Isa = %s"
> #string STR_DEBUGSUPPORT_UNKNOWN #language en-US " Unknown
> (%%H%s%%N)"
>
> -#string STR_PCIRB_DUMP_PH #language en-US "
> ParentHandle..: %%H%x%%N\r\n"
> +#string STR_PCIRB_DUMP_PH #language en-US "
> ParentHandle..: %%H%p%%N\r\n"
> #string STR_PCIRB_DUMP_SEG #language en-US " Segment
> #.....: %%H%x%%N\r\n"
> #string STR_PCIRB_DUMP_ATT #language en-US "
> Attributes....: %%H%x%%N\r\n"
> #string STR_PCIRB_DUMP_SUPPORTS #language en-US "
> Supports......: %%H%x%%N\r\n"
> @@ -375,7 +375,7 @@
> " Device #......: %02x\r\n"
> " Function #....: %02x\r\n"
> " ROM Size......: %lx\r\n"
> - " ROM Location..: %08x\r\n"
> + " ROM Location..: %p\r\n"
> " Vendor ID.....: %04x\r\n"
> " Device ID.....: %04x\r\n"
> " Class Code....: %02x %02x %02x\r\n"
> @@ -388,18 +388,18 @@
> #string STR_LI_DUMP_NAME #language en-US "
> Name..........: %%H%s%%N\r\n"
>
> #string STR_LI_DUMP_MAIN #language en-US "
> Revision......: %%H0x%08x%%N\r\n"
> - " ParentHandle..: %%H%x%%N\r\n"
> - " SystemTable...: %%H%x%%N\r\n"
> - " DeviceHandle..: %%H%x%%N\r\n"
> + " ParentHandle..: %%H%p%%N\r\n"
> + " SystemTable...: %%H%p%%N\r\n"
> + " DeviceHandle..: %%H%p%%N\r\n"
> " FilePath......: %%H%s%%N\r\n"
> " PdbFileName...: %%H%a%%N\r\n"
> " OptionsSize...: %%H%x%%N\r\n"
> - " LoadOptions...: %%H%x%%N\r\n"
> - " ImageBase.....: %%H%x%%N\r\n"
> + " LoadOptions...: %%H%p%%N\r\n"
> + " ImageBase.....: %%H%p%%N\r\n"
> " ImageSize.....: %%H%Lx%%N\r\n"
> " CodeType......: %%H%s%%N\r\n"
> " DataType......: %%H%s%%N\r\n"
> - " Unload........: %%H%x%%N"
> + " Unload........: %%H%p%%N"
>
> #string STR_GOP_DUMP_MAIN #language en-US " Max
> Mode..............: %%H0x%08x%%N\r\n"
> " Current Mode..........: %%H0x%08x%%N\r\n"
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> index b1d239ed37ea..4fedc0d1493c 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman
> dsLib.uni
> @@ -103,7 +103,6 @@
>
> #string STR_DMEM_HEADER_ROW #language en-US "Memory
> Address %016LX %X Bytes\r\n"
> #string STR_DMEM_MMIO_HEADER_ROW #language en-US "Memory
> Mapped IO Address %016LX %X Bytes\r\n"
> -#string STR_DMEM_DATA_ROW #language en-US
> "%08X: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x
> %02x %02x %02x %02x *%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c*\r\n"
> #string STR_DMEM_SYSTEM_TABLE #language en-US "\r\nValid EFI
> Header at Address %016Lx\r\n"
> "---------------------------------------------\r\n"
> "System: Table Structure size %08x
> revision %08x\r\n"
> @@ -1171,4 +1170,3 @@
> " \r\n"
> " * To edit memory region starting at address 0x00000000 with size of 2
> bytes:\r\n"
> " fs0:\> hexedit -m 0 2\r\n"
> -
> diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c
> b/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c
> index dd9aba50d754..d17d50fe13fa 100644
> --- a/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c
> +++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c
> @@ -325,7 +325,7 @@ GetProtocolInfoString (
> Status = gBS->HandleProtocol (TheHandle,
> ProtocolGuidArray[ProtocolIndex], &Instance);
> if (!EFI_ERROR (Status)) {
> StrnCatGrow (&RetVal, &Size, L"(%H", 0);
> - UnicodeSPrint (InstanceStr, sizeof (InstanceStr), L"%x", Instance);
> + UnicodeSPrint (InstanceStr, sizeof (InstanceStr), L"%p", Instance);
> StrnCatGrow (&RetVal, &Size, InstanceStr, 0);
> StrnCatGrow (&RetVal, &Size, L"%N)", 0);
> }
> diff --git
> a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Command
> sLib.uni
> b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Comman
> dsLib.uni
> index fc4986c8c62f..230779a4b30d 100644
> ---
> a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Command
> sLib.uni
> +++
> b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1Comman
> dsLib.uni
> @@ -101,7 +101,7 @@
> #string STR_DH_OUTPUT_GUID_HEADER #language en-US "Handle dump by
> protocol '%g'\r\n"
> #string STR_DH_OUTPUT_NAME_HEADER #language en-US "Handle dump
> by protocol '%s'\r\n"
> #string STR_DH_OUTPUT_SINGLE_D #language en-US
> "%H%02x%N: %s\r\n"
> -#string STR_DH_OUTPUT_SINGLE #language en-US
> "%H%02x%N: %x\r\n%s"
> +#string STR_DH_OUTPUT_SINGLE #language en-US
> "%H%02x%N: %p\r\n%s"
> #string STR_DH_OUTPUT_SFO #language en-US
> "%s, %s, %s, %H%02x%N, %s, %s\r\n"
> #string STR_DH_OUTPUT_DRIVER1 #language en-US " Controller
> Name : %H%s%N\r\n"
> #string STR_DH_OUTPUT_DRIVER2 #language en-US " Device
> Path : %H%s%N\r\n"
> @@ -128,18 +128,6 @@
> #string STR_DEV_TREE_OUTPUT #language en-US
> "Ctrl[%H%02x%N] %s\r\n"
>
> #string STR_UNLOAD_CONF #language en-US "%HUnload%N - Handle
> [%H%02x%N]. [y/n]?\r\n"
> -#string STR_UNLOAD_VERBOSE #language en-US ""
> -"Handle [%H%02x%N] (%08x)\r\n"
> -" Image (%08x)\r\n"
> -" ParentHandle..: %08x\r\n"
> -" SystemTable...: %08x\r\n"
> -" DeviceHandle..: %08x\r\n"
> -" FilePath......: %s\r\n"
> -" PDBFileName...: %a\r\n"
> -" ImageBase.....: %08x\r\n"
> -" ImageSize.....: %Ld\r\n"
> -" CodeType......: %s\r\n"
> -" DataType......: %s\r\n"
>
> #string STR_OPENINFO_HEADER_LINE #language en-US
> "Handle %H%02x%N (%H%0p%N)\r\n"
> #string STR_OPENINFO_LINE #language en-US " Drv[%H%02x%N]
> Ctrl[%H%02x%N] Cnt(%H%02x%N) %H%s Image%N(%s)\r\n"
> @@ -734,20 +722,3 @@
> " violation.\r\n"
> " SHELL_INVALID_PARAMETER One of the passed in parameters was
> incorrectly\r\n"
> " formatted or its value was out of bounds.\r\n"
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> diff --git
> a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.uni
> b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.uni
> index 8ce015746f7c..0a0cd3090e0f 100644
> ---
> a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.uni
> +++
> b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.uni
> @@ -134,7 +134,7 @@
>
> #string STR_LOAD_NOT_IMAGE #language en-US "Image '%s' is not an
> image.\r\n"
> #string STR_LOAD_NOT_DRIVER #language en-US "Image '%s' is not a
> driver.\r\n"
> -#string STR_LOAD_LOADED #language en-US "Image '%s' loaded at %x
> - %r\r\n"
> +#string STR_LOAD_LOADED #language en-US "Image '%s' loaded at %p
> - %r\r\n"
> #string STR_LOAD_ERROR #language en-US "Image '%s' error in
> StartImage: %r\r\n"
>
> #string STR_LS_LINE_START_ALL #language en-US "%t %5s %1c % ,L11d "
> @@ -1076,4 +1076,3 @@
> " SHELL_SECURITY_VIOLATION This function was not performed due to a
> security\r\n"
> " violation.\r\n"
> " SHELL_NOT_FOUND The target file-system was not found.\r\n"
> -
> --
> 2.39.1.windows.1
prev parent reply other threads:[~2023-03-13 1:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-11 20:12 [Patch 1/1] ShellPkg/Library: Fix 32-bit truncation of pointer values Michael D Kinney
2023-03-13 1:48 ` Ni, Ray [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MN6PR11MB8244EF84662A7B6BE14FDA128CB99@MN6PR11MB8244.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox