efi_loader: parameter checks CalculateCrc32()

Not checking the parameters may lead reading or writing from NULL.
Implement the parameter checks prescribed in the UEFI spec.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2019-05-16 23:31:29 +02:00
parent 226cddbe32
commit db80fe3866

View file

@ -2465,9 +2465,16 @@ static efi_status_t EFIAPI efi_calculate_crc32(const void *data,
efi_uintn_t data_size,
u32 *crc32_p)
{
efi_status_t ret = EFI_SUCCESS;
EFI_ENTRY("%p, %zu", data, data_size);
if (!data || !data_size || !crc32_p) {
ret = EFI_INVALID_PARAMETER;
goto out;
}
*crc32_p = crc32(0, data, data_size);
return EFI_EXIT(EFI_SUCCESS);
out:
return EFI_EXIT(ret);
}
/**