SecurityPkg/TcgPhysicalPresenceLib: Replace the ASSERT with error code

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2472

Replace the ASSERT with the error code return in the TpmPhysicalPresence
and GetTpmCapability.
Add missing error checking after call TpmPhysicalPresence in
TcgPhysicalPresenceLibProcessRequest.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
This commit is contained in:
Zhichao Gao 2019-12-16 09:18:55 +08:00 committed by mergify[bot]
parent c6a6193d12
commit 01712e6508

View File

@ -102,9 +102,13 @@ GetTpmCapability (
sizeof (RecvBuffer), sizeof (RecvBuffer),
(UINT8*)&RecvBuffer (UINT8*)&RecvBuffer
); );
ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) {
ASSERT (TpmRsp->tag == SwapBytes16 (TPM_TAG_RSP_COMMAND)); return Status;
ASSERT (TpmRsp->returnCode == 0); }
if ((TpmRsp->tag != SwapBytes16 (TPM_TAG_RSP_COMMAND)) || (TpmRsp->returnCode != 0)) {
return EFI_DEVICE_ERROR;
}
TpmPermanentFlags = (TPM_PERMANENT_FLAGS *)&RecvBuffer[sizeof (TPM_RSP_COMMAND_HDR) + sizeof (UINT32)]; TpmPermanentFlags = (TPM_PERMANENT_FLAGS *)&RecvBuffer[sizeof (TPM_RSP_COMMAND_HDR) + sizeof (UINT32)];
@ -157,8 +161,14 @@ TpmPhysicalPresence (
sizeof (TpmRsp), sizeof (TpmRsp),
(UINT8*)&TpmRsp (UINT8*)&TpmRsp
); );
ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) {
ASSERT (TpmRsp.tag == SwapBytes16 (TPM_TAG_RSP_COMMAND)); return Status;
}
if (TpmRsp.tag != SwapBytes16 (TPM_TAG_RSP_COMMAND)) {
return EFI_DEVICE_ERROR;
}
if (TpmRsp.returnCode != 0) { if (TpmRsp.returnCode != 0) {
// //
// If it fails, some requirements may be needed for this command. // If it fails, some requirements may be needed for this command.
@ -1273,7 +1283,10 @@ TcgPhysicalPresenceLibProcessRequest (
// //
// Set operator physical presence flags // Set operator physical presence flags
// //
TpmPhysicalPresence (TcgProtocol, TPM_PHYSICAL_PRESENCE_PRESENT); Status = TpmPhysicalPresence (TcgProtocol, TPM_PHYSICAL_PRESENCE_PRESENT);
if (EFI_ERROR (Status)) {
return;
}
// //
// Execute pending TPM request. // Execute pending TPM request.