SecurityPkg Tpm12CommandLib: Fix TPM12 GetCapability response error
authorZhang, Chao B <chao.b.zhang@intel.com>
Tue, 20 Mar 2018 15:10:26 +0000 (23:10 +0800)
committerZhang, Chao B <chao.b.zhang@intel.com>
Wed, 21 Mar 2018 08:43:35 +0000 (16:43 +0800)
TPM12 command lib doesn't convert Response Size before using. Add logic
to fix the issue.

Cc: Long Qin <qin.long@intel.com>
Cc: Yao Jiewen <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
Reviewed-by: Yao Jiewen <jiewen.yao@intel.com>
SecurityPkg/Library/Tpm12CommandLib/Tpm12GetCapability.c

index c6eb9e1..29d7a13 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Implement TPM1.2 Get Capabilities related commands.\r
 \r
-Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved. <BR>\r
+Copyright (c) 2016 - 2018, 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
@@ -85,7 +85,7 @@ Tpm12GetCapabilityFlagPermanent (
   }\r
 \r
   ZeroMem (TpmPermanentFlags, sizeof (*TpmPermanentFlags));\r
-  CopyMem (TpmPermanentFlags, &Response.Flags, MIN (sizeof (*TpmPermanentFlags), Response.ResponseSize));\r
+  CopyMem (TpmPermanentFlags, &Response.Flags, MIN (sizeof (*TpmPermanentFlags), SwapBytes32(Response.ResponseSize)));\r
 \r
   return Status;\r
 }\r
@@ -131,7 +131,7 @@ Tpm12GetCapabilityFlagVolatile (
   }\r
 \r
   ZeroMem (VolatileFlags, sizeof (*VolatileFlags));\r
-  CopyMem (VolatileFlags, &Response.Flags, MIN (sizeof (*VolatileFlags), Response.ResponseSize));\r
+  CopyMem (VolatileFlags, &Response.Flags, MIN (sizeof (*VolatileFlags), SwapBytes32(Response.ResponseSize)));\r
 \r
   return Status;\r
 }\r