[edk2-devel] [PATCH v1 1/1] ShellPkg/UefiShellBcfgCommandLib: Fix '-opt' option

Ni, Ray ray.ni at intel.com
Mon May 6 14:02:20 UTC 2019


Dandan,
Can you please help to review?

Thanks,
Ray

> -----Original Message-----
> From: jwatt at jwatt.org [mailto:jwatt at jwatt.org]
> Sent: Monday, May 6, 2019 9:03 PM
> To: devel at edk2.groups.io
> Cc: Carsey, Jaben <jaben.carsey at intel.com>; Ni, Ray <ray.ni at intel.com>
> Subject: [PATCH v1 1/1] ShellPkg/UefiShellBcfgCommandLib: Fix '-opt' option
> 
> From: Jonathan Watt <jwatt at jwatt.org>
> 
> For all other bcfg commands the "#" (option number) argument(s) are
> treated as hexedecimal values regardless of whether or not they are prefixed
> by "0x".  This change fixes '-opt' to handle its "#"
> (option number) argument consistently with the other commands.
> 
> Making this change removes a potential footgun whereby a user that has
> been using a number without a "0x" prefix with other bcfg commands finds
> that, on using that exact same number with '-opt', it has this time
> unexpectedly been interpreted as a decimal number and they have modified
> (corrupted) an unrelated load option.  For example, a user may have been
> specifying "10" to other commands to have them act on the 16th option
> (because simply "10", without any prefix, is how 'bcfg boot dump' displayed
> the option number for the 16th option). Unfortunately for them, if they also
> use '-opt' with "10" it would unexpectedly and inconsistently act on the 10th
> option.
> 
> CC: Jaben Carsey <jaben.carsey at intel.com>
> CC: Ray Ni <ray.ni at intel.com>
> Signed-off-by: Jonathan Watt <jwatt at jwatt.org>
> ---
>  ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c | 2
> +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git
> a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
> b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
> index d033c7c1dc59..e8b48b4990dd 100644
> --- a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
> +++
> b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
> @@ -1019,7 +1019,7 @@ BcfgAddOpt(
>    //
>    // Get the index of the variable we are changing.
>    //
> -  Status = ShellConvertStringToUint64(Walker, &Intermediate, FALSE, TRUE);
> +  Status = ShellConvertStringToUint64(Walker, &Intermediate, TRUE,
> + TRUE);
>    if (EFI_ERROR(Status) || (((UINT16)Intermediate) != Intermediate) ||
> StrStr(Walker, L" ") == NULL || ((UINT16)Intermediate) >
> ((UINT16)OrderCount)) {
>      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV),
> gShellBcfgHiiHandle, L"bcfg", L"Option Index");
>      ShellStatus = SHELL_INVALID_PARAMETER;
> --
> 2.21.0


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40041): https://edk2.groups.io/g/devel/message/40041
Mute This Topic: https://groups.io/mt/31520134/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list