[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