mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
efi_loader: return the correct error in efi_bootmgr_release_uridp()
There's currently a chance for this function to overwrite an error if one occurred and the subsequent call to efi_uninstall_multiple_protocol_interfaces() succedded. Although this is an EFI event and we can't do much let's at least set and return the correct error Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4a1eeccde6
commit
063b4ed07d
1 changed files with 7 additions and 5 deletions
|
@ -388,6 +388,7 @@ err:
|
|||
efi_status_t efi_bootmgr_release_uridp(struct uridp_context *ctx)
|
||||
{
|
||||
efi_status_t ret = EFI_SUCCESS;
|
||||
efi_status_t ret2 = EFI_SUCCESS;
|
||||
|
||||
if (!ctx)
|
||||
return ret;
|
||||
|
@ -407,17 +408,18 @@ efi_status_t efi_bootmgr_release_uridp(struct uridp_context *ctx)
|
|||
|
||||
/* cleanup for PE-COFF image */
|
||||
if (ctx->mem_handle) {
|
||||
ret = efi_uninstall_multiple_protocol_interfaces(
|
||||
ctx->mem_handle, &efi_guid_device_path, ctx->loaded_dp,
|
||||
NULL);
|
||||
if (ret != EFI_SUCCESS)
|
||||
ret2 = efi_uninstall_multiple_protocol_interfaces(ctx->mem_handle,
|
||||
&efi_guid_device_path,
|
||||
ctx->loaded_dp,
|
||||
NULL);
|
||||
if (ret2 != EFI_SUCCESS)
|
||||
log_err("Uninstall device_path protocol failed\n");
|
||||
}
|
||||
|
||||
efi_free_pool(ctx->loaded_dp);
|
||||
free(ctx);
|
||||
|
||||
return ret;
|
||||
return ret == EFI_SUCCESS ? ret2 : ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue