When adding a new EFI Debug Image Info entry, we allocate memory for a new
EFI Debug Image Info Normal structure and we add a new entry into the EFI
Debug Image Info Table, which is in fact just a pointer to the allocated
structure.

However, when allocating memory for the new structure we allocate memory
for the wrong type, leading to allocating memory for just a pointer instead
of the desired structure.

Fix the type used during allocation.

Fixes: 146546138af5 ("efi: add EFI_DEBUG_IMAGE_INFO for debug")
Signed-off-by: Vincent Stehlé <[email protected]>
Cc: Heinrich Schuchardt <[email protected]>
Cc: Ilias Apalodimas <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Ying-Chun Liu (PaulLiu) <[email protected]>
---
 lib/efi_loader/efi_debug_support.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_debug_support.c 
b/lib/efi_loader/efi_debug_support.c
index 490b0bb7088..8d0c133871e 100644
--- a/lib/efi_loader/efi_debug_support.c
+++ b/lib/efi_loader/efi_debug_support.c
@@ -111,7 +111,7 @@ efi_status_t efi_core_new_debug_image_info_entry(u32 
image_info_type,
 
        /* Allocate data for new entry. */
        ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA,
-                               sizeof(union efi_debug_image_info),
+                               sizeof(struct efi_debug_image_info_normal),
                                (void **)(&(*table)[index].normal_image));
        if (ret == EFI_SUCCESS && (*table)[index].normal_image) {
                /* Update the entry. */
-- 
2.51.0

Reply via email to