summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut+renesas@mailbox.org>2023-03-02 04:08:19 +0100
committerSimon Glass <sjg@chromium.org>2023-03-08 11:40:57 -0800
commite023b8601ee72eb04098ffa9bd0d113ce98dba38 (patch)
tree60e99b42733472638c5ec1869ab21584f7719e36
parent9d019f5106cc677fefd8ab6ccfc5ba0ed9e0b738 (diff)
downloadu-boot-e023b8601ee72eb04098ffa9bd0d113ce98dba38.tar.gz
u-boot-e023b8601ee72eb04098ffa9bd0d113ce98dba38.tar.bz2
u-boot-e023b8601ee72eb04098ffa9bd0d113ce98dba38.zip
cmd: fdt: Check argc before accessing argv in fdt memory
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>
-rw-r--r--cmd/fdt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cmd/fdt.c b/cmd/fdt.c
index 734c9b36a0..f257bee864 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);