From: Star Zeng Date: Wed, 16 Nov 2016 09:17:36 +0000 (+0800) Subject: SecurityPkg TPM2: Assign real copied count in CopyDigestListToBuffer() X-Git-Tag: edk2-stable201903~5134 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=be93a17bbd1e8dd83904653aec17728641d67048 SecurityPkg TPM2: Assign real copied count in CopyDigestListToBuffer() In CopyDigestListToBuffer() of Tpm2CommandLib, the count in returned Buffer should be real copied DigestList count. Cc: Jiewen Yao Cc: Chao Zhang Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng Reviewed-by: Jiewen Yao --- diff --git a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c index 43574a2468..be95fd69b3 100644 --- a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c +++ b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c @@ -230,8 +230,11 @@ CopyDigestListToBuffer ( { UINTN Index; UINT16 DigestSize; + UINT32 DigestListCount; + UINT32 *DigestListCountPtr; - CopyMem (Buffer, &DigestList->count, sizeof(DigestList->count)); + DigestListCountPtr = (UINT32 *) Buffer; + DigestListCount = 0; Buffer = (UINT8 *)Buffer + sizeof(DigestList->count); for (Index = 0; Index < DigestList->count; Index++) { if (!IsHashAlgSupportedInHashAlgorithmMask(DigestList->digests[Index].hashAlg, HashAlgorithmMask)) { @@ -243,7 +246,9 @@ CopyDigestListToBuffer ( DigestSize = GetHashSizeFromAlgo (DigestList->digests[Index].hashAlg); CopyMem (Buffer, &DigestList->digests[Index].digest, DigestSize); Buffer = (UINT8 *)Buffer + DigestSize; + DigestListCount++; } + WriteUnaligned32 (DigestListCountPtr, DigestListCount); return Buffer; }