diff options
| author | Tom Rini <[email protected]> | 2026-02-27 08:12:04 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-02-27 08:12:22 -0600 |
| commit | e6e7b2427a78caef292065206da9f1a00a7c9139 (patch) | |
| tree | 09fa7d16b539dc296f8bf860cc6a809b1164333b | |
| parent | 437ea9f8be5afaebe2d8cbab6242f1182857f21e (diff) | |
| parent | 89f6b9020db0960e219fc56d0d32aba82e42332a (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.c | 8 | ||||
| -rw-r--r-- | lib/efi_selftest/efi_selftest_loadimage.c | 7 | ||||
| -rw-r--r-- | lib/efi_selftest/efi_selftest_manageprotocols.c | 8 |
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, |
