From: Eric Dong Date: Wed, 16 Aug 2017 05:20:36 +0000 (+0800) Subject: UefiCpuPkg RegisterCpuFeaturesLib: Fix buffer pointer error usage. X-Git-Tag: edk2-stable201903~3618 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=6619cf3b6a84397ceff5d856111a33f9cdfb0812 UefiCpuPkg RegisterCpuFeaturesLib: Fix buffer pointer error usage. Current code allocate buffer for the pointer which later get value from PCD database. but current code error use "=" for this case. Use AllocateCopyPool instead to fix it. V2 enhanced to directly use AllocateCopyPool to get the PCD value. V3 enhanced to avoid using local temp variable. V4 enhanced to keep the functions to get the pcd values. Cc: Ruiyu Ni Cc: Shao Ming Cc: Kinney Michael D Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Eric Dong Reviewed-by: Kinney Michael D --- diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/CpuFeaturesInitialize.c b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/CpuFeaturesInitialize.c index 474aea31e9..b8f76f1ce6 100644 --- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/CpuFeaturesInitialize.c +++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/CpuFeaturesInitialize.c @@ -60,13 +60,13 @@ GetSupportPcds ( VOID ) { - UINTN BitMaskSize; UINT8 *SupportBitMask; - BitMaskSize = PcdGetSize (PcdCpuFeaturesSupport); - SupportBitMask = AllocateZeroPool (BitMaskSize); + SupportBitMask = AllocateCopyPool ( + PcdGetSize (PcdCpuFeaturesSupport), + PcdGetPtr (PcdCpuFeaturesSupport) + ); ASSERT (SupportBitMask != NULL); - SupportBitMask = (UINT8 *) PcdGetPtr (PcdCpuFeaturesSupport); return SupportBitMask; } @@ -81,13 +81,13 @@ GetConfigurationPcds ( VOID ) { - UINTN BitMaskSize; UINT8 *SupportBitMask; - BitMaskSize = PcdGetSize (PcdCpuFeaturesUserConfiguration); - SupportBitMask = AllocateZeroPool (BitMaskSize); + SupportBitMask = AllocateCopyPool ( + PcdGetSize (PcdCpuFeaturesUserConfiguration), + PcdGetPtr (PcdCpuFeaturesUserConfiguration) + ); ASSERT (SupportBitMask != NULL); - SupportBitMask = (UINT8 *) PcdGetPtr (PcdCpuFeaturesUserConfiguration); return SupportBitMask; }