[PATCH] lib: efi_loader: Fix efi_dp_from_mem() call

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Oct 30 21:29:37 CET 2024


On 10/30/24 21:16, Moritz Fischer wrote:
> The function expects an end address but is being called with
> an size instead.
>
> Fixes: 6422820ac3 ("efi_loader: split unrelated code from efi_bootmgr.c")
> Signed-off-by: Moritz Fischer <moritzf at google.com>
> ---
>   lib/efi_loader/efi_bootbin.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c
> index a87006b3c0..798bcd6eee 100644
> --- a/lib/efi_loader/efi_bootbin.c
> +++ b/lib/efi_loader/efi_bootbin.c
> @@ -137,7 +137,8 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
>   		 */
>   		file_path = efi_dp_from_mem(EFI_RESERVED_MEMORY_TYPE,
>   					    (uintptr_t)source_buffer,
> -					    source_size);
> +					    (uintptr_t)source_buffer +
> +					    (size_t)source_size);
>   		/*
>   		 * Make sure that device for device_path exist
>   		 * in load_image(). Otherwise, shell and grub will fail.


The  efi_dp_from_mem() invocation in  efi_dp_from_name() seems also to
be affected.

Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>


More information about the U-Boot mailing list