summaryrefslogtreecommitdiffstats
path: root/common/cmd_fdt.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2012-09-05 08:34:44 +0200
committerGerald Van Baren <gvb@unssw.com>2012-09-15 09:16:08 -0400
commite02c9458748a59e5d80649deb5e40f96ed992bb5 (patch)
tree2ecfa930caa658b6b2ad18a8e2261a2aa028e64d /common/cmd_fdt.c
parenta6f0c4faa4c65a7b7048b12c9d180d7e1aad1721 (diff)
downloadtalos-obmc-uboot-e02c9458748a59e5d80649deb5e40f96ed992bb5.tar.gz
talos-obmc-uboot-e02c9458748a59e5d80649deb5e40f96ed992bb5.zip
fdt: Check if the FDT address is configured
In case the "fdt addr" command wasn't ran yet and any other "fdt" subcommand was issued, the system crashed due to NULL pointer being used. This is caused by "fdt addr" command setting up a pointer to the FDT memory location. Prior issuing "fdt addr", the pointer is NULL so calling any other subcommands crashed the u-boot. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/cmd_fdt.c')
-rw-r--r--common/cmd_fdt.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 9a5c53ec06..e2225c4d5c 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -114,10 +114,21 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
}
}
+ return CMD_RET_SUCCESS;
+ }
+
+ if (!working_fdt) {
+ puts(
+ "No FDT memory address configured. Please configure\n"
+ "the FDT address via \"fdt addr <address>\" command.\n"
+ "Aborting!\n");
+ return CMD_RET_FAILURE;
+ }
+
/*
* Move the working_fdt
*/
- } else if (strncmp(argv[1], "mo", 2) == 0) {
+ if (strncmp(argv[1], "mo", 2) == 0) {
struct fdt_header *newaddr;
int len;
int err;
OpenPOWER on IntegriCloud