[U-Boot] [PATCH] splash: Prevent splash_load_fs from writing to 0x0

Igor Grinberg grinberg at compulab.co.il
Sun Feb 26 07:05:38 UTC 2017


Hi Jonathan,

On 02/24/17 18:46, Jonathan Golder wrote:
> Passing NULL to fs_read() for actread value results in hanging U-Boot
> at least on our ARM plattform (TI AM335x). Since fs_read() and
> following functions do not catch nullpointers, writing to 0x0 occurs.
> 
> Passing a local dummy var instead of NULL solves this issue.

I haven't looked at fs_read() yet, but from the above it seems
that a better approach would be to fix the fs_read()?
Might there be use cases when it is legitimate to pass NULL?

> 
> Signed-off-by: Jonathan Golder <jonathan.golder at kurz-elektronik.de>
> Cc: Anatolij Gustschin <agust at denx.de>
> ---
>  common/splash_source.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/common/splash_source.c b/common/splash_source.c
> index a5eeb3f..d1647c8 100644
> --- a/common/splash_source.c
> +++ b/common/splash_source.c
> @@ -216,6 +216,7 @@ static int splash_load_fs(struct splash_location *location, u32 bmp_load_addr)
>  {
>  	int res = 0;
>  	loff_t bmp_size;
> +	loff_t actread;
>  	char *splash_file;
>  
>  	splash_file = getenv("splashfile");
> @@ -251,7 +252,7 @@ static int splash_load_fs(struct splash_location *location, u32 bmp_load_addr)
>  	}
>  
>  	splash_select_fs_dev(location);
> -	res = fs_read(splash_file, bmp_load_addr, 0, 0, NULL);
> +	res = fs_read(splash_file, bmp_load_addr, 0, 0, &actread);
>  
>  out:
>  	if (location->ubivol != NULL)
> 

-- 
Regards,
Igor.


More information about the U-Boot mailing list