From 4694dd1ba8ad0242a7cf7467568ce001619d3fde Mon Sep 17 00:00:00 2001 From: lzeng14 Date: Fri, 11 May 2012 01:33:01 +0000 Subject: DestPtr may point to the lower aligned address in the free memory region (FreeMemBase, FreeMemBase + FreeMemSize), the free memory region may be updated to override the private signature. So update FreeMemSize to avoid the potential overlap. Signed-off-by: Star Zeng Reviewed-by: Liming Gao git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13303 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'MdeModulePkg/Universal/CapsulePei') diff --git a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c index 0428111675..a95b4722c5 100644 --- a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c +++ b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c @@ -945,7 +945,7 @@ CapsuleDataCoalesce ( DestPtr = FreeMemBase + FreeMemSize - CapsuleSize; DestPtr = (UINT8 *) ((UINTN) DestPtr &~ (UINTN) (sizeof (UINTN) - 1)); FreeMemBase = (UINT8 *) BlockList + DescriptorsSize; - FreeMemSize = FreeMemSize - DescriptorsSize - CapsuleSize; + FreeMemSize = (UINTN) DestPtr - (UINTN) FreeMemBase; NewCapsuleBase = (VOID *) DestPtr; // -- cgit v1.2.3