]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cmd: fdt: Check argc before accessing argv in fdt memory
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Thu, 2 Mar 2023 03:08:19 +0000 (04:08 +0100)
committerSimon Glass <sjg@chromium.org>
Wed, 8 Mar 2023 19:40:57 +0000 (11:40 -0800)
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 <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c

index 734c9b36a072b87288917a2f169c38321516d0d9..f257bee864377162ddc8aaf42ba4713a41953c8c 100644 (file)
--- 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);