On case 'fdt memory' is invoked without parameters, argv[2]/argv[3]
is not valid and this command would SEGFAULT in sandbox environment.
Add missing argc test to avoid the crash and rather print usage help
message.

Signed-off-by: Marek Vasut <[email protected]>
---
Cc: Heinrich Schuchardt <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
---
 cmd/fdt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/cmd/fdt.c b/cmd/fdt.c
index 734c9b36a07..f257bee8643 100644
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -611,6 +611,10 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int 
argc, char *const argv[])
        } else if (strncmp(argv[1], "me", 2) == 0) {
                uint64_t addr, size;
                int err;
+
+               if (argc != 4)
+                       return CMD_RET_USAGE;
+
                addr = simple_strtoull(argv[2], NULL, 16);
                size = simple_strtoull(argv[3], NULL, 16);
                err = fdt_fixup_memory(working_fdt, addr, size);
-- 
2.39.2

Reply via email to