[PATCH v2] boot: Ensure method_flags is initialised before use
Andrew Goodbody
andrew.goodbody at linaro.org
Wed Jul 9 13:49:09 CEST 2025
The local variable method_flags is only assigned to in some of the
code paths leaving it possibly uninitialised at first use.
Initialise method_flags at declaration to ensure that it cannot be
used uninitialised. Also remove now redundant assignments.
Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
Changes in v2:
- When scanning a UCLASS set method_flags appropriately. This was
only happening accidentaly when method_flags was not initialised.
- Link to v1: https://lore.kernel.org/r/20250627-bootflow_fix-v1-1-f1039b2962d6@linaro.org
---
boot/bootflow.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/boot/bootflow.c b/boot/bootflow.c
index 4054a966af8..d79f303486d 100644
--- a/boot/bootflow.c
+++ b/boot/bootflow.c
@@ -245,7 +245,7 @@ static int iter_incr(struct bootflow_iter *iter)
if (iter->flags & BOOTFLOWIF_SINGLE_DEV) {
ret = -ENOENT;
} else {
- int method_flags;
+ int method_flags = 0;
ret = 0;
dev = iter->dev;
@@ -264,7 +264,6 @@ static int iter_incr(struct bootflow_iter *iter)
} else if (IS_ENABLED(CONFIG_BOOTSTD_FULL) &&
iter->flags & BOOTFLOWIF_SINGLE_MEDIA) {
log_debug("next in single\n");
- method_flags = 0;
do {
/*
* Move to the next bootdev child of this media
@@ -296,6 +295,7 @@ static int iter_incr(struct bootflow_iter *iter)
log_debug("looking for next device %s: %s\n",
iter->dev->name,
dev ? dev->name : "<none>");
+ method_flags = BOOTFLOW_METHF_SINGLE_UCLASS;
} else {
dev = NULL;
}
@@ -306,7 +306,6 @@ static int iter_incr(struct bootflow_iter *iter)
}
} else {
ret = bootdev_next_prio(iter, &dev);
- method_flags = 0;
}
}
log_debug("ret=%d, dev=%p %s\n", ret, dev,
---
base-commit: 359e3012921f2fc2d43f3c4e320a752173f82b82
change-id: 20250627-bootflow_fix-b000ad021cc2
Best regards,
--
Andrew Goodbody <andrew.goodbody at linaro.org>
More information about the U-Boot
mailing list