]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm12CommandLib/Tpm12GetCapability.c
SecurityPkg/Tpm12CommandLib: Always check response returnCode
[mirror_edk2.git] / SecurityPkg / Library / Tpm12CommandLib / Tpm12GetCapability.c
index c33746a0b10b93c959d59096b2306db1565737d1..c6eb9e1050d446258a2ed98103e022fa5f0c29ae 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Implement TPM1.2 Get Capabilities related commands.\r
 \r
-Copyright (c) 2016, Intel Corporation. All rights reserved. <BR>\r
+Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved. <BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -79,6 +79,11 @@ Tpm12GetCapabilityFlagPermanent (
     return Status;\r
   }\r
 \r
+  if (SwapBytes32 (Response.Hdr.returnCode) != TPM_SUCCESS) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm12GetCapabilityFlagPermanent: Response Code error! 0x%08x\r\n", SwapBytes32 (Response.Hdr.returnCode)));\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
+\r
   ZeroMem (TpmPermanentFlags, sizeof (*TpmPermanentFlags));\r
   CopyMem (TpmPermanentFlags, &Response.Flags, MIN (sizeof (*TpmPermanentFlags), Response.ResponseSize));\r
 \r
@@ -120,6 +125,11 @@ Tpm12GetCapabilityFlagVolatile (
     return Status;\r
   }\r
 \r
+  if (SwapBytes32 (Response.Hdr.returnCode) != TPM_SUCCESS) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm12GetCapabilityFlagVolatile: Response Code error! 0x%08x\r\n", SwapBytes32 (Response.Hdr.returnCode)));\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
+\r
   ZeroMem (VolatileFlags, sizeof (*VolatileFlags));\r
   CopyMem (VolatileFlags, &Response.Flags, MIN (sizeof (*VolatileFlags), Response.ResponseSize));\r
 \r