summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-02-27 08:12:04 -0600
committerTom Rini <[email protected]>2026-02-27 08:12:22 -0600
commite6e7b2427a78caef292065206da9f1a00a7c9139 (patch)
tree09fa7d16b539dc296f8bf860cc6a809b1164333b
parent437ea9f8be5afaebe2d8cbab6242f1182857f21e (diff)
parent89f6b9020db0960e219fc56d0d32aba82e42332a (diff)
Merge tag 'efi-2026-04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2026-04-rc4 CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/29389 UEFI: * Correct LoadImage() return code for invalid parameters and provide a test for it. * Correct misspells in the test code.
-rw-r--r--lib/efi_loader/efi_boottime.c8
-rw-r--r--lib/efi_selftest/efi_selftest_loadimage.c7
-rw-r--r--lib/efi_selftest/efi_selftest_manageprotocols.c8
3 files changed, 17 insertions, 6 deletions
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index b424d924896..de57823bd44 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -2096,8 +2096,12 @@ efi_status_t EFIAPI efi_load_image(bool boot_policy,
EFI_ENTRY("%d, %p, %pD, %p, %zu, %p", boot_policy, parent_image,
file_path, source_buffer, source_size, image_handle);
- if (!image_handle || (!source_buffer && !file_path) ||
- !efi_search_obj(parent_image) ||
+ if (!source_buffer && !file_path) {
+ ret = EFI_NOT_FOUND;
+ goto error;
+ }
+
+ if (!image_handle || !efi_search_obj(parent_image) ||
/* The parent image handle must refer to a loaded image */
!parent_image->type) {
ret = EFI_INVALID_PARAMETER;
diff --git a/lib/efi_selftest/efi_selftest_loadimage.c b/lib/efi_selftest/efi_selftest_loadimage.c
index 967eaa58c69..0e8fc6216f0 100644
--- a/lib/efi_selftest/efi_selftest_loadimage.c
+++ b/lib/efi_selftest/efi_selftest_loadimage.c
@@ -562,6 +562,13 @@ static int execute(void)
return EFI_ST_FAILURE;
}
+ ret = boottime->load_image(false, handle_image, NULL, NULL, 0,
+ &handle);
+ if (ret != EFI_NOT_FOUND) {
+ efi_st_error("Unexpected load_image return value\n");
+ return EFI_ST_FAILURE;
+ }
+
return EFI_ST_SUCCESS;
}
diff --git a/lib/efi_selftest/efi_selftest_manageprotocols.c b/lib/efi_selftest/efi_selftest_manageprotocols.c
index 097b2ae3545..31ea67748a5 100644
--- a/lib/efi_selftest/efi_selftest_manageprotocols.c
+++ b/lib/efi_selftest/efi_selftest_manageprotocols.c
@@ -6,7 +6,7 @@
*
* This unit test checks the following protocol services:
* InstallProtocolInterface, UninstallProtocolInterface,
- * InstallMultipleProtocolsInterfaces, UninstallMultipleProtocolsInterfaces,
+ * InstallMultipleProtocolInterfaces, UninstallMultipleProtocolInterfaces,
* HandleProtocol, ProtocolsPerHandle,
* LocateHandle, LocateHandleBuffer.
*/
@@ -189,7 +189,7 @@ static int execute(void)
}
/*
- * Test error handling in UninstallMultipleProtocols
+ * Test error handling in UninstallMultipleProtocolInterfaces
*
* These are the installed protocol interfaces on handle 2:
*
@@ -240,7 +240,7 @@ static int execute(void)
efi_st_error("LocateHandleBuffer failed to locate new handle\n");
return EFI_ST_FAILURE;
}
- /* Clear the buffer, we are reusing it it the next step. */
+ /* Clear the buffer, we are reusing it in the next step. */
boottime->set_mem(buffer, sizeof(efi_handle_t) * buffer_size, 0);
/*
@@ -289,7 +289,7 @@ static int execute(void)
}
/*
- * Test UninstallMultipleProtocols
+ * Test UninstallMultipleProtocolInterfaces
*/
ret = boottime->uninstall_multiple_protocol_interfaces(
handle2,