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.goodb...@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-f1039b296...@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.goodb...@linaro.org>

Reply via email to