[U-Boot] [PATCH] fdt: Check if the FDT address is configured

Jerry Van Baren gvb.uboot at gmail.com
Thu Sep 13 03:48:17 CEST 2012


Hi Marek,

I'll queue this up this weekend.

The merge window for v2012.10 closed September 18.  Unless there is an
overriding urgency, the patch will go into the following release.

On 09/05/2012 02:34 AM, Marek Vasut wrote:
> 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 at denx.de>
> Cc: Simon Glass <sjg at chromium.org>
> ---
>  common/cmd_fdt.c |   13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> Note: Damn, I'm falling asleep already :-( I hope the text above at
>       least makes sense though.
> 
> diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
> index 9a5c53e..e2225c4 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;
> 

Thanks,
gvb


More information about the U-Boot mailing list