diff options
author | Niko Mauno <niko.mauno@vaisala.com> | 2017-08-03 09:53:24 +0300 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2017-08-29 00:20:16 +0200 |
commit | 22aa21dba4085bb8d597eeeeeee9e3328af684bb (patch) | |
tree | 9cd7f46c9216e1b3194a074052217174b7b8a5ba /common/splash_source.c | |
parent | 8b3cec7da18645eda7f7cd0b65ee9f2dac573409 (diff) | |
download | u-boot-22aa21dba4085bb8d597eeeeeee9e3328af684bb.tar.gz u-boot-22aa21dba4085bb8d597eeeeeee9e3328af684bb.tar.bz2 u-boot-22aa21dba4085bb8d597eeeeeee9e3328af684bb.zip |
splash_source: Verify FIT magic
Before reading entire FIT image, add sanity check by testing image
header against FDT_MAGIC. This should help avoid problems in situations
where FIT is not yet available from storage device, for example when
performing initial programming of device.
Cc: Anatolij Gustschin <agust@denx.de>
Acked-by: Tomas Melin <tomas.melin@vaisala.com>
Diffstat (limited to 'common/splash_source.c')
-rw-r--r-- | common/splash_source.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/common/splash_source.c b/common/splash_source.c index a21ad62f82..e0defdebd6 100644 --- a/common/splash_source.c +++ b/common/splash_source.c @@ -317,6 +317,11 @@ static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr) return res; img_header = (struct image_header *)bmp_load_addr; + if (image_get_magic(img_header) != FDT_MAGIC) { + printf("Could not find FDT magic\n"); + return -EINVAL; + } + fit_size = fdt_totalsize(img_header); /* Read in entire FIT */ |