On Tue, 17 Sep 2019 at 21:50, Laszlo Ersek <ler...@redhat.com> wrote:
>
> In the following call tree:
>
>  PlatformInit ()
>    mInstalledPackages = HiiAddPackages ()
>  GopInstalled ()
>     PopulateForm (PackageList = mInstalledPackages)
>       CreateResolutionOptions (PackageList)
>         HiiSetString (PackageList
>       HiiUpdateForm (PackageList)
>
> PlatformDxe passes around an EFI_HII_HANDLE that (a) originates from
> HiiAddPackages() and (b) is ultimately passed to HiiSetString() and
> HiiUpdateForm(). The intermediate functions PopulateForm() and
> CreateResolutionOptions() however take that parameter as an
> (EFI_HII_HANDLE*).
>
> There is no bug in practice (because the affected functions never try to
> de-reference the "PackageList" parameter, they just pass it on), but the
> function prototypes are semantically wrong. Fix that.
>
> This could remain hidden so long because pointer-to-VOID silently converts
> to/from any pointer-to-object type, and the UEFI spec mandates that
> EFI_HII_HANDLE be a typedef to (VOID*).
>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Cc: Jordan Justen <jordan.l.jus...@intel.com>
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>

Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

> ---
>
> Notes:
>     tested in UiApp
>
>  OvmfPkg/PlatformDxe/Platform.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/OvmfPkg/PlatformDxe/Platform.c b/OvmfPkg/PlatformDxe/Platform.c
> index 09181769babf..23ad43901f66 100644
> --- a/OvmfPkg/PlatformDxe/Platform.c
> +++ b/OvmfPkg/PlatformDxe/Platform.c
> @@ -486,7 +486,7 @@ STATIC
>  EFI_STATUS
>  EFIAPI
>  CreateResolutionOptions (
> -  IN  EFI_HII_HANDLE  *PackageList,
> +  IN  EFI_HII_HANDLE  PackageList,
>    OUT VOID            **OpCodeBuffer,
>    IN  UINTN           NumGopModes,
>    IN  GOP_MODE        *GopModes
> @@ -547,7 +547,7 @@ STATIC
>  EFI_STATUS
>  EFIAPI
>  PopulateForm (
> -  IN  EFI_HII_HANDLE  *PackageList,
> +  IN  EFI_HII_HANDLE  PackageList,
>    IN  EFI_GUID        *FormSetGuid,
>    IN  EFI_FORM_ID     FormId,
>    IN  UINTN           NumGopModes,
> --
> 2.19.1.3.g30247aa5d201
>
>

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

View/Reply Online (#48040): https://edk2.groups.io/g/devel/message/48040
Mute This Topic: https://groups.io/mt/34180225/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to