Hi Köry,

On 11/12/25 2:07 PM, Kory Maincent wrote:
From: "Kory Maincent (TI.com)" <[email protected]>

Add a null check for extension_list before calling alist_get_ptr() to
prevent a potential null pointer dereference. If extension_get_list()
returns NULL, alist_get_ptr() would attempt to dereference it, leading
to undefined behavior.

The fix ensures both extension_list and its first element are checked
before proceeding with the list operation.

Closes: https://lists.denx.de/pipermail/u-boot/2025-November/602892.html
Fixes: 2d12958ee71b ("boot: Remove legacy extension board support")
Signed-off-by: Kory Maincent (TI.com) <[email protected]>
---
  cmd/extension_board.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmd/extension_board.c b/cmd/extension_board.c
index 86e4795ba8a..1b92be82611 100644
--- a/cmd/extension_board.c
+++ b/cmd/extension_board.c
@@ -99,7 +99,7 @@ static int do_extension_list(struct cmd_tbl *cmdtp, int flag,
        int i = 0;
extension_list = extension_get_list();
-       if (!alist_get_ptr(extension_list, 0)) {
+       if (!extension_list || !alist_get_ptr(extension_list, 0)) {

Is it possible that one runs extension scan which returns no supported extension (alist_empty(), the default state before calling the scan() ops for the extension uclass driver)?

In which case, we should only check whether extension_list is NULL and not whether there's at least one extension?

Or at least have a different error code between "scan wasn't run" and "scan returned no extension", if that is a distinction we can make?

Cheers,
Quentin

Reply via email to