summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-06-21 09:27:12 -0600
committerTom Rini <[email protected]>2026-06-21 09:27:12 -0600
commitd57ea0d9edf5e5babffd280f7352f23a33a00948 (patch)
tree8615e41f166b56427a935f499266c425867a0b27 /lib
parent922cf29dd8045f7348ce0f20145f46e8235faf21 (diff)
parentad90d1ec8b43aa3d7ec5790db5c5740472e47c96 (diff)
Merge tag 'efi-2026-07-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2026-07-rc6 CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/30505 Documentation: * bootdev: fix typos * board: renesas: Document Renesas RZ/N1D and RZ/N1S as arm * board: renesas: Document Renesas Geist board support * board: renesas: Document Renesas Gray Hawk board support * board: renesas: Document Renesas Ironhide board support * android: fastboot: Document halt behaviour UEFI: * fix memory leak in efi_var_collect() * set revision field in block IO protocol * fix guid comparison in efi_selftest_loaded_image.c * fix use-after-free in efi_selftest_memory.c
Diffstat (limited to 'lib')
-rw-r--r--lib/efi_loader/efi_disk.c1
-rw-r--r--lib/efi_loader/efi_var_common.c4
-rw-r--r--lib/efi_selftest/efi_selftest_loaded_image.c4
-rw-r--r--lib/efi_selftest/efi_selftest_memory.c17
4 files changed, 15 insertions, 11 deletions
diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
index f8a57539ec6..4a3ace3a304 100644
--- a/lib/efi_loader/efi_disk.c
+++ b/lib/efi_loader/efi_disk.c
@@ -305,6 +305,7 @@ static efi_status_t EFIAPI efi_disk_flush_blocks(struct efi_block_io *this)
}
static const struct efi_block_io block_io_disk_template = {
+ .revision = EFI_BLOCK_IO_PROTOCOL_REVISION3,
.reset = &efi_disk_reset,
.read_blocks = &efi_disk_read_blocks,
.write_blocks = &efi_disk_write_blocks,
diff --git a/lib/efi_loader/efi_var_common.c b/lib/efi_loader/efi_var_common.c
index d63c2d1b1cd..e51b21fe0b0 100644
--- a/lib/efi_loader/efi_var_common.c
+++ b/lib/efi_loader/efi_var_common.c
@@ -446,8 +446,10 @@ efi_status_t __maybe_unused efi_var_collect(struct efi_var_file **bufp, loff_t *
efi_status_t ret;
if ((uintptr_t)buf + len <=
- (uintptr_t)var->name + old_var_name_length)
+ (uintptr_t)var->name + old_var_name_length) {
+ free(buf);
return EFI_BUFFER_TOO_SMALL;
+ }
var_name_length = (uintptr_t)buf + len - (uintptr_t)var->name;
memcpy(var->name, old_var->name, old_var_name_length);
diff --git a/lib/efi_selftest/efi_selftest_loaded_image.c b/lib/efi_selftest/efi_selftest_loaded_image.c
index 5889ab12617..e0668f60ebd 100644
--- a/lib/efi_selftest/efi_selftest_loaded_image.c
+++ b/lib/efi_selftest/efi_selftest_loaded_image.c
@@ -60,8 +60,8 @@ static int execute(void)
efi_st_printf("%u protocols installed on image handle\n",
(unsigned int)protocol_buffer_count);
for (i = 0; i < protocol_buffer_count; ++i) {
- if (memcmp(protocol_buffer[i], &loaded_image_protocol_guid,
- sizeof(efi_guid_t)))
+ if (!memcmp(protocol_buffer[i], &loaded_image_protocol_guid,
+ sizeof(efi_guid_t)))
found = true;
}
if (!found) {
diff --git a/lib/efi_selftest/efi_selftest_memory.c b/lib/efi_selftest/efi_selftest_memory.c
index 7320964c129..450470ceedd 100644
--- a/lib/efi_selftest/efi_selftest_memory.c
+++ b/lib/efi_selftest/efi_selftest_memory.c
@@ -155,6 +155,15 @@ static int execute(void)
EFI_RUNTIME_SERVICES_DATA) != EFI_ST_SUCCESS)
return EFI_ST_FAILURE;
+ /* Check memory reservation for the device tree */
+ if (fdt_addr &&
+ find_in_memory_map(map_size, memory_map, desc_size, fdt_addr,
+ EFI_ACPI_RECLAIM_MEMORY) != EFI_ST_SUCCESS) {
+ efi_st_error
+ ("Device tree not marked as ACPI reclaim memory\n");
+ return EFI_ST_FAILURE;
+ }
+
/* Free memory */
ret = boottime->free_pages(p1, EFI_ST_NUM_PAGES);
if (ret != EFI_SUCCESS) {
@@ -172,14 +181,6 @@ static int execute(void)
return EFI_ST_FAILURE;
}
- /* Check memory reservation for the device tree */
- if (fdt_addr &&
- find_in_memory_map(map_size, memory_map, desc_size, fdt_addr,
- EFI_ACPI_RECLAIM_MEMORY) != EFI_ST_SUCCESS) {
- efi_st_error
- ("Device tree not marked as ACPI reclaim memory\n");
- return EFI_ST_FAILURE;
- }
return EFI_ST_SUCCESS;
}