From: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date: Thu, 2 Mar 2023 03:08:19 +0000 (+0100)
Subject: cmd: fdt: Check argc before accessing argv in fdt memory
X-Git-Tag: v2025.01-rc5-pxa1908~1086^2~19
X-Git-Url: http://git.dujemihanovic.xyz/posts?a=commitdiff_plain;h=5e0462757c636745dbe16aaf72d659271595626b;p=u-boot.git

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>
---

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);