From: Marek Vasut Date: Thu, 2 Mar 2023 03:08:21 +0000 (+0100) Subject: cmd: fdt: Handle 64bit pointers in fdt get addr X-Git-Url: http://git.dujemihanovic.xyz/projects?a=commitdiff_plain;h=98d114e75c888ed7a8313a14e778f45d388199c4;p=u-boot.git cmd: fdt: Handle 64bit pointers in fdt get addr The command assumed 32bit pointers so far, with 64bit pointer the command would overwrite a piece of stack. Fix it by extending the array size to cater for 64bit pointer, and use snprintf() to avoid writing past the end of the array ever again. Signed-off-by: Marek Vasut Reviewed-by: Simon Glass --- diff --git a/cmd/fdt.c b/cmd/fdt.c index 279dad9fe1..bc19303159 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -466,9 +466,9 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return ret; } else if (subcmd[0] == 'a') { /* Get address */ - char buf[11]; + char buf[19]; - sprintf(buf, "0x%p", nodep); + snprintf(buf, sizeof(buf), "0x%p", nodep); env_set(var, buf); } else if (subcmd[0] == 's') { /* Get size */