]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm12CommandLib/Tpm12PhysicalPresence.c
SecurityPkg: TPM12CommandLib: Add Response returnCode Check
[mirror_edk2.git] / SecurityPkg / Library / Tpm12CommandLib / Tpm12PhysicalPresence.c
index a730334c3f252117f8a5f3ebe0cc0ce229a6e563..d8d1998d4bb9dacbf75112f5320513fdd3e93dc7 100644 (file)
@@ -44,6 +44,7 @@ Tpm12PhysicalPresence (
   IN TPM_PHYSICAL_PRESENCE  PhysicalPresence\r
   )\r
 {\r
+  EFI_STATUS                 Status;\r
   TPM_CMD_PHYSICAL_PRESENCE  Command;\r
   TPM_RSP_COMMAND_HDR        Response;\r
   UINT32                     Length;\r
@@ -56,5 +57,16 @@ Tpm12PhysicalPresence (
   Command.Hdr.ordinal      = SwapBytes32 (TSC_ORD_PhysicalPresence);\r
   Command.PhysicalPresence = SwapBytes16 (PhysicalPresence);\r
   Length = sizeof (Response);\r
-  return Tpm12SubmitCommand (sizeof (Command), (UINT8 *)&Command, &Length, (UINT8 *)&Response);\r
+\r
+  Status = Tpm12SubmitCommand (sizeof (Command), (UINT8 *)&Command, &Length, (UINT8 *)&Response);\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  if (SwapBytes32(Response.returnCode) != TPM_SUCCESS) {\r
+    DEBUG ((EFI_D_ERROR, "Tpm12PhysicalPresence: Response Code error! 0x%08x\r\n", SwapBytes32(Response.returnCode)));\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
 }\r