u-boot/lib/efi_loader
Masami Hiramatsu 3ef772230d efi: Fix to use null handle to create new handle for efi_fmp_raw
When running the efidebug capsule disk-update command, the efi_fmp_raw
protocol installation fails with 2 (EFI_INVALID_PARAMETER) as below.
This is because the code passes efi_root instead of the handle local var.

=> efidebug capsule disk-update
EFI: Call: efi_install_multiple_protocol_interfaces( &handle, &efi_guid_firmware_management_protocol, &efi_fmp_fit, NULL)
  EFI: Entry efi_install_multiple_protocol_interfaces(00000000fbaf5988)
    EFI: Call: efi_install_protocol_interface( handle, protocol, EFI_NATIVE_INTERFACE, protocol_interface)
      EFI: Entry efi_install_protocol_interface(00000000fbaf5988, 86c77a67-0b97-4633-a187-49104d0685c7, 0, 00000000fbfa6ee8)
        EFI: new handle 00000000fbb37520
      EFI: Exit: efi_install_protocol_interface: 0
    EFI: 0 returned by efi_install_protocol_interface( handle, protocol, EFI_NATIVE_INTERFACE, protocol_interface)
  EFI: Exit: efi_install_multiple_protocol_interfaces: 0
EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, &efi_guid_firmware_management_protocol, &efi_fmp_fit, NULL)
EFI: Call: efi_install_multiple_protocol_interfaces( &efi_root, &efi_guid_firmware_management_protocol, &efi_fmp_raw, NULL)
  EFI: Entry efi_install_multiple_protocol_interfaces(00000000fbfec648)
    EFI: Call: efi_install_protocol_interface( handle, protocol, EFI_NATIVE_INTERFACE, protocol_interface)
      EFI: Entry efi_install_protocol_interface(00000000fbfec648, 86c77a67-0b97-4633-a187-49104d0685c7, 0, 00000000fbfa6f18)
        EFI: handle 00000000fbaf8520
      EFI: Exit: efi_install_protocol_interface: 2
    EFI: 2 returned by efi_install_protocol_interface( handle, protocol, EFI_NATIVE_INTERFACE, protocol_interface)
  EFI: Exit: efi_install_multiple_protocol_interfaces: 2
EFI: 2 returned by efi_install_multiple_protocol_interfaces( &efi_root, &efi_guid_firmware_management_protocol, &efi_fmp_raw, NULL)
Command failed, result=1

To fix this issue, pass the handle local var which is set NULL right
before installing efi_fmp_raw as same as the installing efi_fmp_fit.
(In both cases, the local reference to the handle will be just discarded)

Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2021-07-02 09:37:01 +02:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
efi_acpi.c efi_loader: ACPI tables must be in EfiACPIReclaimMemory 2021-02-26 16:17:43 +01:00
efi_bootmgr.c efi_loader: Cleanup get_var duplication 2021-04-10 12:00:24 +02:00
efi_boottime.c efi_loader: TPL_HIGH_LEVEL not allowed for CreateEvent 2021-06-28 19:57:13 +02:00
efi_capsule.c efi: Fix to use null handle to create new handle for efi_fmp_raw 2021-07-02 09:37:01 +02:00
efi_console.c efi_loader: NULL dereference in EFI console 2021-03-25 20:08:57 +01:00
efi_device_path.c efi_loader: path length in efi_dp_from_name() 2021-05-25 13:06:57 +02:00
efi_device_path_to_text.c efi_loader: Uart device path missing break 2021-03-31 06:22:22 +00:00
efi_device_path_utilities.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
efi_disk.c efi_loader: partition numbers are hexadecimal 2021-06-09 00:16:39 +02:00
efi_dt_fixup.c efi_loader: fix memory type for memory reservation block 2021-03-25 20:07:18 +01:00
efi_esrt.c efi_loader: esrt: Remove incorrect invocations of EFI_CALL macro 2021-04-17 20:01:31 +02:00
efi_file.c efi_loader: loosen buffer parameter check in efi_file_read_int 2021-05-18 12:36:12 +02:00
efi_firmware.c efi_loader: capsule: Remove the check for capsule_authentication_enabled environment variable 2021-05-18 12:36:12 +02:00
efi_freestanding.c efi_loader: fix freestanding memmove() 2020-03-22 11:06:23 +01:00
efi_gop.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_helper.c efi_loader: Add helper functions for EFI 2021-03-25 20:14:25 +01:00
efi_hii.c efi_loader: ListPackageLists() return EFI_NOT_FOUND 2019-06-20 22:26:19 +00:00
efi_hii_config.c efi_loader: remove EFI_HII_CONFIG_ROUTING_PROTOCOL 2020-12-10 09:15:32 +01:00
efi_image_loader.c efi_loader: fix Sphinx warning 2021-06-09 12:35:01 +02:00
efi_load_initrd.c efi_loader: Replace config option for initrd loading 2021-03-25 20:14:26 +01:00
efi_load_options.c efi_loader: move load options to new module 2021-01-19 18:56:08 +01:00
efi_memory.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_net.c efi_loader: fix use after free in receive path 2020-10-19 22:59:53 +02:00
efi_rng.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_root_node.c efi_loader: remove EFI_UNICODE_COLLATION_PROTOCOL 2021-01-20 08:17:17 +01:00
efi_runtime.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
efi_setup.c efi: Add ESRT to the EFI system table 2021-03-25 20:19:19 +01:00
efi_signature.c efi_loader: expose efi_image_parse() even if UEFI Secure Boot is disabled 2021-05-25 13:06:57 +02:00
efi_smbios.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
efi_string.c efi_loader: missing include in efi_string.c 2021-04-24 06:53:40 +02:00
efi_tcg2.c efi_loader: add PE/COFF image measurement 2021-05-28 16:17:01 +02:00
efi_unicode_collation.c efi_loader: carve out utf_to_cp() 2021-03-07 17:37:13 +01:00
efi_var_common.c efi_loader: expose efi_image_parse() even if UEFI Secure Boot is disabled 2021-05-25 13:06:57 +02:00
efi_var_file.c efi_loader: partition numbers are hexadecimal 2021-06-09 00:16:39 +02:00
efi_var_mem.c efi_loader: Avoid emitting efi_var_buf to .GOT 2021-01-20 08:17:17 +01:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: Make the pkcs7 header parsing function an extern 2020-12-31 14:41:31 +01:00
efi_variable_tee.c efi_loader: Avoid emitting efi_var_buf to .GOT 2021-01-20 08:17:17 +01:00
efi_watchdog.c efi_loader: function descriptions efi_watchdog.c 2020-04-16 08:10:02 +02:00
helloworld.c efi_loader: typo 'devide path' 2021-03-31 06:34:33 +00:00
Kconfig efi_loader: add PE/COFF image measurement 2021-05-28 16:17:01 +02:00
Makefile efi_loader: expose efi_image_parse() even if UEFI Secure Boot is disabled 2021-05-25 13:06:57 +02:00