Fix input param error checking for the DisplayDxe ComponentName2 protocol. This fixes https://github.com/pftf/RPi4/issues/84
Cc: Leif Lindholm <l...@nuviainc.com> Cc: Pete Batard <p...@akeo.ie> Cc: Andrei Warkentin <awarken...@vmware.com> Cc: Ard Biesheuvel <ard.biesheu...@arm.com> Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahm...@arm.com> --- Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.h | 2 ++ Platform/RaspberryPi/Drivers/DisplayDxe/ComponentName.c | 22 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.h b/Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.h index bfbe9e868843..073f65111645 100644 --- a/Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.h +++ b/Platform/RaspberryPi/Drivers/DisplayDxe/DisplayDxe.h @@ -1,5 +1,6 @@ /** @file * + * Copyright (c) 2020, ARM Limited. All rights reserved. * Copyright (c) 2017-2018, Andrei Warkentin <andrey.warken...@gmail.com> * Copyright (c) Microsoft Corporation. All rights reserved. * @@ -27,6 +28,7 @@ extern EFI_GRAPHICS_OUTPUT_PROTOCOL gDisplayProto; extern EFI_COMPONENT_NAME_PROTOCOL gComponentName; extern EFI_COMPONENT_NAME2_PROTOCOL gComponentName2; +extern EFI_DRIVER_BINDING_PROTOCOL mDriverBinding; VOID RegisterScreenshotHandlers ( diff --git a/Platform/RaspberryPi/Drivers/DisplayDxe/ComponentName.c b/Platform/RaspberryPi/Drivers/DisplayDxe/ComponentName.c index 092230cd7c9b..4c065b5d51bf 100644 --- a/Platform/RaspberryPi/Drivers/DisplayDxe/ComponentName.c +++ b/Platform/RaspberryPi/Drivers/DisplayDxe/ComponentName.c @@ -1,5 +1,6 @@ /** @file * + * Copyright (c) 2020, ARM Limited. All rights reserved. * Copyright (c) 2018, Andrei Warkentin <andrey.warken...@gmail.com> * Copyright (c) 2006-2016, Intel Corporation. All rights reserved. * @@ -206,6 +207,27 @@ ComponentNameGetControllerName ( OUT CHAR16 **ControllerName ) { + EFI_STATUS Status; + + // + // This is a device driver, so ChildHandle must be NULL. + // + if (ChildHandle != NULL) { + return EFI_UNSUPPORTED; + } + + // + // Make sure this driver is currently managing ControllHandle + // + Status = EfiTestManagedDevice ( + ControllerHandle, + mDriverBinding.DriverBindingHandle, + &gEfiGraphicsOutputProtocolGuid + ); + if (EFI_ERROR (Status)) { + return Status; + } + return LookupUnicodeString2 ( Language, This->SupportedLanguages, -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64302): https://edk2.groups.io/g/devel/message/64302 Mute This Topic: https://groups.io/mt/76213602/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-