splash: Prevent splash_load_fs from writing to 0x0
authorJonathan Golder <jonathan.golder@kurz-elektronik.de>
Fri, 24 Feb 2017 16:46:10 +0000 (17:46 +0100)
committerAnatolij Gustschin <agust@denx.de>
Mon, 27 Feb 2017 15:08:06 +0000 (16:08 +0100)
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.

Signed-off-by: Jonathan Golder <jonathan.golder@kurz-elektronik.de>
Cc: Anatolij Gustschin <agust@denx.de>
common/splash_source.c

index a5eeb3f12c581e0f1d58792a250da16345e551c6..d1647c8300629d529444f2b053ac53e5735525e2 100644 (file)
@@ -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)