Revision: 19756
          http://sourceforge.net/p/edk2/code/19756
Author:   jyao1
Date:     2016-01-27 12:16:47 +0000 (Wed, 27 Jan 2016)
Log Message:
-----------
SecurityPkg: Correct data copy in Tpm2NvReadPublic.

1) NvPublic.dataSize data should be got from original
receive buffer, instead of returned NvPublic.

2) NvNameSize means the size of NvName without size field.
The original code treats it to be size of NvName with size
field, so the last 2 bytes are missing.

This patch fixed problem.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <[email protected]>
Reviewed-by: "Zhang, Chao B" <[email protected]>

Modified Paths:
--------------
    trunk/edk2/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c

Modified: trunk/edk2/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c
===================================================================
--- trunk/edk2/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c       
2016-01-27 12:15:59 UTC (rev 19755)
+++ trunk/edk2/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c       
2016-01-27 12:16:47 UTC (rev 19756)
@@ -250,11 +250,11 @@
   NvPublic->nvPublic.nameAlg = SwapBytes16 (NvPublic->nvPublic.nameAlg);
   WriteUnaligned32 ((UINT32 *)&NvPublic->nvPublic.attributes, SwapBytes32 
(ReadUnaligned32 ((UINT32 *)&NvPublic->nvPublic.attributes)));
   NvPublic->nvPublic.authPolicy.size = SwapBytes16 
(NvPublic->nvPublic.authPolicy.size);
-  Buffer = (UINT8 *)&NvPublic->nvPublic.authPolicy;
+  Buffer = (UINT8 *)&RecvBuffer.NvPublic.nvPublic.authPolicy;
   Buffer += sizeof(UINT16) + NvPublic->nvPublic.authPolicy.size;
   NvPublic->nvPublic.dataSize = SwapBytes16 (ReadUnaligned16 ((UINT16 
*)Buffer));
 
-  CopyMem (NvName, (UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) + 
sizeof(UINT16) + NvPublicSize, NvNameSize);
+  CopyMem (NvName->name, (UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) + 
sizeof(UINT16) + NvPublicSize + sizeof(UINT16), NvNameSize);
   NvName->size = NvNameSize;
   
   return EFI_SUCCESS;


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to