On 1/12/25 04:42, Sam Protsenko wrote:
There is no such thing as struct bootmeth, it's probably a typo. This
issue doesn't affect the execution as it's a pointer, and pointer sizes
are the same for all data types. But it can be confusing, so make it
struct udevice, as it should be.

Fixes: a950d31abe98 ("bootstd: Add the bootmeth uclass and helpers")
Signed-off-by: Sam Protsenko <[email protected]>
---
  boot/bootmeth-uclass.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/boot/bootmeth-uclass.c b/boot/bootmeth-uclass.c
index 049389403191..2496e8c1d8a8 100644
--- a/boot/bootmeth-uclass.c
+++ b/boot/bootmeth-uclass.c
@@ -139,7 +139,7 @@ int bootmeth_setup_iter_order(struct bootflow_iter *iter, 
bool include_global)
                        goto err_order;
                }
                memcpy(order, std->bootmeth_order,
-                      count * sizeof(struct bootmeth *));
+                      count * sizeof(struct udevice *));

I found this description of the field:
@bootmeth_order: List of bootmeth devices to use, in order, NULL-terminated

As the list is NULL terminated, shouldn't we copy the NULL value, i.e.

    (count + 1) * sizeof(struct udevice *)

so that we can still identify the end of the list?

Best regards

Heinrich


                if (IS_ENABLED(CONFIG_BOOTMETH_GLOBAL)) {
                        for (i = 0; i < count; i++) {

Reply via email to