
Hi Heinrich
On Sat, 16 Mar 2024 at 11:37, Heinrich Schuchardt heinrich.schuchardt@canonical.com wrote:
Running an EFI binary loaded via tftp using the bootefi command results in showing the usage help.
The commit message sounds a bit off. The real problem is removing protocols from a non existent handle right? The help message was fixed in a subsequent patch
With that fixed Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org
We should not try to remove protocol interfaces from a NULL handle.
Fixes: 6422820ac3e5 ("efi_loader: split unrelated code from efi_bootmgr.c") Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
lib/efi_loader/efi_bootbin.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c index 733cc1a61b5..b7910f78fb6 100644 --- a/lib/efi_loader/efi_bootbin.c +++ b/lib/efi_loader/efi_bootbin.c @@ -125,7 +125,7 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size) efi_handle_t mem_handle = NULL, handle; struct efi_device_path *file_path = NULL; struct efi_device_path *msg_path;
efi_status_t ret, ret2;
efi_status_t ret; u16 *load_options; if (!bootefi_device_path || !bootefi_image_path) {
@@ -172,11 +172,17 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size) ret = do_bootefi_exec(handle, load_options);
out:
ret2 = efi_uninstall_multiple_protocol_interfaces(mem_handle,
&efi_guid_device_path,
file_path, NULL);
if (mem_handle) {
efi_status_t r;
r = efi_uninstall_multiple_protocol_interfaces(
mem_handle, &efi_guid_device_path, file_path, NULL);
if (r != EFI_SUCCESS)
log_err("Uninstalling protocol interfaces failed\n");
} efi_free_pool(file_path);
return (ret != EFI_SUCCESS) ? ret : ret2;
return ret;
}
/**
2.43.0