From: "Carsey, Jaben" <jaben.carsey@intel.com>
To: "Palmer, Thomas" <thomas.palmer@hpe.com>,
Laszlo Ersek <lersek@redhat.com>,
edk2-devel-01 <edk2-devel@lists.01.org>
Cc: "Gao, Liming" <liming.gao@intel.com>,
Rebecca Cran <rebecca@bluestop.org>,
"Ni, Ruiyu" <ruiyu.ni@intel.com>
Subject: Re: [PATCH] ShellPkg/UefiShellLevel2CommandsLib: add missing EFIAPI call conv spec
Date: Mon, 8 Jan 2018 21:06:18 +0000 [thread overview]
Message-ID: <CB6E33457884FA40993F35157061515CA3C19506@FMSMSX103.amr.corp.intel.com> (raw)
In-Reply-To: <TU4PR8401MB1069B8E7601FF17CE11B620BED130@TU4PR8401MB1069.NAMPRD84.PROD.OUTLOOK.COM>
Agree that the internal use is questionable.
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
> -----Original Message-----
> From: Palmer, Thomas [mailto:thomas.palmer@hpe.com]
> Sent: Monday, January 08, 2018 10:07 AM
> To: Laszlo Ersek <lersek@redhat.com>; edk2-devel-01 <edk2-
> devel@lists.01.org>
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Rebecca Cran <rebecca@bluestop.org>; Ni, Ruiyu
> <ruiyu.ni@intel.com>
> Subject: RE: [PATCH] ShellPkg/UefiShellLevel2CommandsLib: add missing
> EFIAPI call conv spec
> Importance: High
>
> Reviewed by thomas.palmer@hpe.com
>
>
> Regards,
>
> Thomas Palmer
>
> "I have only made this letter longer because I have not had the time to make
> it shorter" - Blaise Pascal
>
> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com]
> Sent: Saturday, January 6, 2018 2:04 PM
> To: edk2-devel-01 <edk2-devel@lists.01.org>
> Cc: Jaben Carsey <jaben.carsey@intel.com>; Liming Gao
> <liming.gao@intel.com>; Rebecca Cran <rebecca@bluestop.org>; Ruiyu Ni
> <ruiyu.ni@intel.com>; Palmer, Thomas <thomas.palmer@hpe.com>
> Subject: [PATCH] ShellPkg/UefiShellLevel2CommandsLib: add missing EFIAPI
> call conv spec
>
> UefiShellLevel2CommandsLib (somewhat questionably) calls the BaseLib-
> internal function InternalCharToUpper().
>
> This function is declared in "MdePkg/Library/BaseLib/BaseLibInternals.h",
> which is not a public library class header. UefiShellLevel2CommandsLib
> therefore duplicates the function declaration, but a mistake was made: the
> EFIAPI calling convention is not spelled out on the duplicated declaration.
> Therefore calls made from UefiShellLevel2CommandsLib will not match the
> actual function definition in "MdePkg/Library/BaseLib/String.c",
> when GCC/X64 toolchains are used.
>
> One consequence of this is that cross-filesystem copies don't work in the
> UEFI shell (see the StrniCmp() function in "UefiShellLevel2CommandsLib.c").
> From the original report:
>
> > FS0:\efi\ubuntu\> cp grubx64.efi fs1:\
> >
> > cp: The source and destination are the same.
>
> Copy the declaration from "BaseLibInternals.h" to
> "UefiShellLevel2CommandsLib.c" verbatim.
>
> Reported-by: Rebecca Cran <rebecca@bluestop.org>
> Analyzed-by: Thomas Palmer <thomas.palmer@hpe.com>
> Analyzed-by: Liming Gao <liming.gao@intel.com>
> Ref: http://mid.mail-archive.com/47cd17d8-f022-6ca5-2f52-
> 06a8250f8d14@cran.org.uk
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Rebecca Cran <rebecca@bluestop.org>
> Cc: Ruiyu Ni <ruiyu.ni@intel.com>
> Cc: Thomas Palmer <thomas.palmer@hpe.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>
> ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib
> .c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git
> a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.c
> b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.c
> index 7948e53cfc46..e9ce63189224 100644
> ---
> a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Commands
> Lib.c
> +++
> b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2Command
> +++ sLib.c
> @@ -268,8 +268,9 @@ VerifyIntermediateDirectories (
> @return Char as an upper case character.
> **/
> CHAR16
> +EFIAPI
> InternalCharToUpper (
> - IN CONST CHAR16 Char
> + IN CHAR16 Char
> );
>
> /**
> --
> 2.14.1.3.gb7cf6e02401b
>
next prev parent reply other threads:[~2018-01-08 21:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-06 20:03 [PATCH] ShellPkg/UefiShellLevel2CommandsLib: add missing EFIAPI call conv spec Laszlo Ersek
2018-01-08 18:07 ` Palmer, Thomas
2018-01-08 21:06 ` Carsey, Jaben [this message]
2018-01-08 22:18 ` Laszlo Ersek
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=CB6E33457884FA40993F35157061515CA3C19506@FMSMSX103.amr.corp.intel.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