mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
efi_loader: add missing parameter check for EFI_TCG2_PROTOCOL api
TCG EFI Protocol Specification defines the required parameter checking and return value for each API. This commit adds the missing parameter check and fixes the wrong return value to comply the specification. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
7219856dae
commit
580d7242b1
1 changed files with 19 additions and 0 deletions
|
@ -708,6 +708,18 @@ efi_tcg2_get_eventlog(struct efi_tcg2_protocol *this,
|
||||||
EFI_ENTRY("%p, %u, %p, %p, %p", this, log_format, event_log_location,
|
EFI_ENTRY("%p, %u, %p, %p, %p", this, log_format, event_log_location,
|
||||||
event_log_last_entry, event_log_truncated);
|
event_log_last_entry, event_log_truncated);
|
||||||
|
|
||||||
|
if (!this || !event_log_location || !event_log_last_entry ||
|
||||||
|
!event_log_truncated) {
|
||||||
|
ret = EFI_INVALID_PARAMETER;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Only support TPMV2 */
|
||||||
|
if (log_format != TCG2_EVENT_LOG_FORMAT_TCG_2) {
|
||||||
|
ret = EFI_INVALID_PARAMETER;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
ret = platform_get_tpm2_device(&dev);
|
ret = platform_get_tpm2_device(&dev);
|
||||||
if (ret != EFI_SUCCESS) {
|
if (ret != EFI_SUCCESS) {
|
||||||
event_log_location = NULL;
|
event_log_location = NULL;
|
||||||
|
@ -965,6 +977,7 @@ efi_tcg2_hash_log_extend_event(struct efi_tcg2_protocol *this, u64 flags,
|
||||||
data_to_hash_len, (void **)&nt);
|
data_to_hash_len, (void **)&nt);
|
||||||
if (ret != EFI_SUCCESS) {
|
if (ret != EFI_SUCCESS) {
|
||||||
log_err("Not a valid PE-COFF file\n");
|
log_err("Not a valid PE-COFF file\n");
|
||||||
|
ret = EFI_UNSUPPORTED;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
ret = tcg2_hash_pe_image((void *)(uintptr_t)data_to_hash,
|
ret = tcg2_hash_pe_image((void *)(uintptr_t)data_to_hash,
|
||||||
|
@ -1038,9 +1051,15 @@ efi_tcg2_get_active_pcr_banks(struct efi_tcg2_protocol *this,
|
||||||
{
|
{
|
||||||
efi_status_t ret;
|
efi_status_t ret;
|
||||||
|
|
||||||
|
if (!this || !active_pcr_banks) {
|
||||||
|
ret = EFI_INVALID_PARAMETER;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
EFI_ENTRY("%p, %p", this, active_pcr_banks);
|
EFI_ENTRY("%p, %p", this, active_pcr_banks);
|
||||||
ret = __get_active_pcr_banks(active_pcr_banks);
|
ret = __get_active_pcr_banks(active_pcr_banks);
|
||||||
|
|
||||||
|
out:
|
||||||
return EFI_EXIT(ret);
|
return EFI_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue