From a3657e3e7aaaccb1b9ea1b41a72d4564452e272d Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Thu, 25 May 2006 10:13:26 +0000 Subject: =?UTF-8?q?MemoryAllocationLib:=20For=20boundary=20case:=20?= =?UTF-8?q?=E2=80=9CAllocationSize=20+=20OverAllocationSize=20>=3D=204G?= =?UTF-8?q?=E2=80=9D=20DxeMemoryAllocationLib:=20Change=20the=20behavior?= =?UTF-8?q?=20from=20returning=20NULL=20to=20ASSERT=20()=20PeiMemoryAlloca?= =?UTF-8?q?tionLib:=20Add=20ASSERT=20()=20I=20also=20add=20ASSERT=20()=20i?= =?UTF-8?q?n=20Pei=20Service=20AllocatePool=20()=20to=20catch=20if=20alloc?= =?UTF-8?q?ation=20size=20>=2064K=20DebugLib:=20Header=20file=20(DebugLib.?= =?UTF-8?q?h):=20Fix=20an=20issue=20in=20ASSERT=5FPROTOCOL=5FALREADY=5FINS?= =?UTF-8?q?TALLED(Handle,=20Guid).=20In=20contrast=20with=20LocateProtocol?= =?UTF-8?q?=20(),=20the=20first=20&=20second=20parameter=20type=20of=20Han?= =?UTF-8?q?dleProtocol=20()=20is=20EFI=5FHANDLE=20&=20EFI=5FGUID=20respect?= =?UTF-8?q?ively.=20UefiLib:=20For=20UnicodeStringDisplayLength=20(CONST?= =?UTF-8?q?=20CHAR8=20*String),=20return=200=20if=20String=20is=20NULL.=20?= =?UTF-8?q?BasePrintLib:=20Add=20missing=20=E2=80=9CEFIAPI=E2=80=9D=20to?= =?UTF-8?q?=20UnicodeValueToString()=20and=20AsciiValueToString()=20and=20?= =?UTF-8?q?move=20their=20definitions=20from=20PrintLibInternal.c=20to=20P?= =?UTF-8?q?rintLib.c.=20Fix=20the=20comments=20error(Maximum=20Length=20TI?= =?UTF-8?q?ME=E2=80=9D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@275 6f19259b-4bc3-4df7-8a09-765794883524 --- .../DxeMemoryAllocationLib/MemoryAllocationLib.c | 23 ++++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'MdePkg/Library/DxeMemoryAllocationLib') diff --git a/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c index ef643eed42..088a10bb56 100644 --- a/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c @@ -168,13 +168,11 @@ InternalAllocateAlignedPages ( // AlignmentMask = Alignment - 1; RealPages = Pages + EFI_SIZE_TO_PAGES (Alignment); - if (RealPages <= Pages) { - // - // This extra checking is to make sure that Pages plus EFI_SIZE_TO_PAGES (Alignment) does not overflow. - // - return NULL; - } - + // + // Make sure that Pages plus EFI_SIZE_TO_PAGES (Alignment) does not overflow. + // + ASSERT (RealPages > Pages); + Status = gBS->AllocatePages (AllocateAnyPages, MemoryType, RealPages, &Memory); if (EFI_ERROR (Status)) { return NULL; @@ -601,12 +599,11 @@ InternalAllocateAlignedPool ( // OverAllocationSize = sizeof (RawAddress) + AlignmentMask; RealAllocationSize = AllocationSize + OverAllocationSize; - if (RealAllocationSize <= AllocationSize ) { - // - // This extra checking is to make sure that AllocationSize plus OverAllocationSize does not overflow. - // - return NULL; - } + // + // Make sure that AllocationSize plus OverAllocationSize does not overflow. + // + ASSERT (RealAllocationSize > AllocationSize); + RawAddress = InternalAllocatePool (PoolType, RealAllocationSize); if (RawAddress == NULL) { return NULL; -- cgit v1.2.3