All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] lib: efi_loader: Fix efi_dp_from_mem() calls
@ 2024-10-30 21:17 Moritz Fischer
  2024-10-30 21:21 ` Patrick Wildt
  0 siblings, 1 reply; 2+ messages in thread
From: Moritz Fischer @ 2024-10-30 21:17 UTC (permalink / raw)
  To: u-boot; +Cc: xypron.glpk, ilias.apalodimas, trini, pwildt, Moritz Fischer

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")
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Moritz Fischer <moritzf@google.com>
---

Changes from v1:
- Fixed second callsite
- Remove superfluous cast

---
 lib/efi_loader/efi_bootbin.c     | 1 +
 lib/efi_loader/efi_device_path.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c
index a87006b3c0..bf38392fac 100644
--- a/lib/efi_loader/efi_bootbin.c
+++ b/lib/efi_loader/efi_bootbin.c
@@ -137,6 +137,7 @@ 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,
+					    (uintptr_t)source_buffer +
 					    source_size);
 		/*
 		 * Make sure that device for device_path exist
diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index 9de3b95d07..d7444588aa 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -1073,7 +1073,8 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
 		efi_get_image_parameters(&image_addr, &image_size);
 
 		dp = efi_dp_from_mem(EFI_RESERVED_MEMORY_TYPE,
-				     (uintptr_t)image_addr, image_size);
+				     (uintptr_t)image_addr,
+				     (uintptr_t)image_addr + image_size);
 	} else if (IS_ENABLED(CONFIG_NETDEVICES) && !strcmp(dev, "Net")) {
 		dp = efi_dp_from_eth();
 	} else if (!strcmp(dev, "Uart")) {
-- 
2.47.0.163.g1226f6d8fa-goog


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] lib: efi_loader: Fix efi_dp_from_mem() calls
  2024-10-30 21:17 [PATCH v2] lib: efi_loader: Fix efi_dp_from_mem() calls Moritz Fischer
@ 2024-10-30 21:21 ` Patrick Wildt
  0 siblings, 0 replies; 2+ messages in thread
From: Patrick Wildt @ 2024-10-30 21:21 UTC (permalink / raw)
  To: Moritz Fischer; +Cc: u-boot, xypron.glpk, ilias.apalodimas, trini

On Wed, Oct 30, 2024 at 10:18 PM Moritz Fischer <moritzf@google.com> 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")
> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Signed-off-by: Moritz Fischer <moritzf@google.com>
> ---
>
> Changes from v1:
> - Fixed second callsite
> - Remove superfluous cast
>
> ---
>  lib/efi_loader/efi_bootbin.c     | 1 +
>  lib/efi_loader/efi_device_path.c | 3 ++-
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c
> index a87006b3c0..bf38392fac 100644
> --- a/lib/efi_loader/efi_bootbin.c
> +++ b/lib/efi_loader/efi_bootbin.c
> @@ -137,6 +137,7 @@ 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,
> +                                           (uintptr_t)source_buffer +
>                                             source_size);
>                 /*
>                  * Make sure that device for device_path exist
> diff --git a/lib/efi_loader/efi_device_path.c
> b/lib/efi_loader/efi_device_path.c
> index 9de3b95d07..d7444588aa 100644
> --- a/lib/efi_loader/efi_device_path.c
> +++ b/lib/efi_loader/efi_device_path.c
> @@ -1073,7 +1073,8 @@ efi_status_t efi_dp_from_name(const char *dev, const
> char *devnr,
>                 efi_get_image_parameters(&image_addr, &image_size);
>
>                 dp = efi_dp_from_mem(EFI_RESERVED_MEMORY_TYPE,
> -                                    (uintptr_t)image_addr, image_size);
> +                                    (uintptr_t)image_addr,
> +                                    (uintptr_t)image_addr + image_size);
>         } else if (IS_ENABLED(CONFIG_NETDEVICES) && !strcmp(dev, "Net")) {
>                 dp = efi_dp_from_eth();
>         } else if (!strcmp(dev, "Uart")) {
> --
> 2.47.0.163.g1226f6d8fa-goog
>
>
Looks good to me, thanks!

Reviewed-by: Patrick Wildt <pwildt@google.com>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-10-30 21:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-30 21:17 [PATCH v2] lib: efi_loader: Fix efi_dp_from_mem() calls Moritz Fischer
2024-10-30 21:21 ` Patrick Wildt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.