kernel: properly handle paging errors in fit partition parser

The uImage.FIT partition uses page mapping without properly handling
paging errors. This can lead to Kernel Oops in case of read errors
while trying to parse uImage.FIT partitions.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2021-08-27 21:30:32 +01:00
parent 97e32e9702
commit cf40141b51
No known key found for this signature in database
GPG Key ID: 5A8F39C31C3217CA

View File

@ -92,8 +92,11 @@ int parse_fit_partitions(struct parsed_partitions *state, u64 fit_start_sector,
return -ERANGE;
page = read_mapping_page(mapping, fit_start_sector >> (PAGE_SHIFT - SECTOR_SHIFT), NULL);
if (!page)
return -ENOMEM;
if (IS_ERR(page))
return -EFAULT;
if (PageError(page))
return -EFAULT;
init_fit = page_address(page);