aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut+renesas@mailbox.org>2023-03-02 04:08:18 +0100
committerSimon Glass <sjg@chromium.org>2023-03-08 11:40:57 -0800
commit9d019f5106cc677fefd8ab6ccfc5ba0ed9e0b738 (patch)
tree868a383974c3413d9b488bdfaadce71018a7f2cd
parent778c7ab5a7905dd984ce1fc743962c16b5bf3d82 (diff)
downloadu-boot-9d019f5106cc677fefd8ab6ccfc5ba0ed9e0b738.zip
u-boot-9d019f5106cc677fefd8ab6ccfc5ba0ed9e0b738.tar.gz
u-boot-9d019f5106cc677fefd8ab6ccfc5ba0ed9e0b738.tar.bz2
cmd: fdt: Check argc before accessing argv in fdt bootcpu
On case 'fdt bootcpu' is invoked without parameters, argv[2] 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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/cmd/fdt.c b/cmd/fdt.c
index 29d7488..734c9b3 100644
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -597,7 +597,12 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
* Set boot cpu id
*/
} else if (strncmp(argv[1], "boo", 3) == 0) {
- unsigned long tmp = hextoul(argv[2], NULL);
+ unsigned long tmp;
+
+ if (argc != 3)
+ return CMD_RET_USAGE;
+
+ tmp = hextoul(argv[2], NULL);
fdt_set_boot_cpuid_phys(working_fdt, tmp);
/*