[U-Boot] [PATCH] boot_fit: Fix warning: overflow in implicit constant conversion in fdt_offset()

Franklin S Cooper Jr fcooper at ti.com
Wed Aug 2 23:56:53 UTC 2017


Hi
On 08/02/2017 06:10 PM, Nobuhiro Iwamatsu wrote:
> FDT_ERROR is defined as unsigned long. However, since the return value of
> fdt_offset() is int, a warning will occur when compiling.
> This fixes this problem by cast to int when setting FDT_ERROR as return value.
> 
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
> CC: Franklin S Cooper Jr <fcooper at ti.com>
> ---
>  common/boot_fit.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/common/boot_fit.c b/common/boot_fit.c
> index 51440a6e6f..ca130f2308 100644
> --- a/common/boot_fit.c
> +++ b/common/boot_fit.c
> @@ -25,7 +25,7 @@ int fdt_offset(void *fit)
>  	images = fdt_path_offset(fit, FIT_IMAGES_PATH);
>  	if (images < 0) {
>  		debug("%s: Cannot find /images node: %d\n", __func__, images);
> -		return FDT_ERROR;
> +		return (int)FDT_ERROR;

Returning -EINVAL would be better. Doing essentially (int)((ulong)(-1))
doesn't look right and to function properly that function needs to
return any kind of negative value.  Thanks for catching this problem.
>  	}
>  
>  	fdt_name = fdt_getprop(fit, node, FIT_FDT_PROP, &fdt_len);
> 


More information about the U-Boot mailing list