diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-05-11 08:23:26 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-05-11 08:23:26 +0000 |
commit | 446b94b0a1b98635d7db21d67fff158c6f153de4 (patch) | |
tree | 5106b3b7ca4d3acdde70b4a63b8f621d72355f2b /MdePkg/Library | |
parent | 2842d31b8fc01b1091d7bef067a65daca1b5c59f (diff) | |
download | edk2-platforms-446b94b0a1b98635d7db21d67fff158c6f153de4.tar.xz |
Add conformance check for OldBuffer and size even if the memory allocation fails.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8294 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library')
-rw-r--r-- | MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c | 18 | ||||
-rw-r--r-- | MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c | 18 |
2 files changed, 22 insertions, 14 deletions
diff --git a/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c index 4e5f8fadd4..6e0517fe4d 100644 --- a/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c @@ -129,7 +129,7 @@ AllocateReservedPages ( Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer
must have been allocated on a previous call to the page allocation services of the Memory
Allocation Library. If it is not possible to free allocated pages, then this function will
- peform no actions.
+ perform no actions.
If Buffer was not allocated with a page allocation function in the Memory Allocation Library,
then ASSERT().
@@ -291,7 +291,7 @@ AllocateAlignedReservedPages ( Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer
must have been allocated on a previous call to the aligned page allocation services of the Memory
Allocation Library. If it is not possible to free allocated pages, then this function will
- peform no actions.
+ perform no actions.
If Buffer was not allocated with an aligned page allocation function in the Memory Allocation
Library, then ASSERT().
@@ -412,9 +412,9 @@ AllocateReservedPool ( }
/**
- Allocates and zeros a buffer of a certian pool type.
+ Allocates and zeros a buffer of a certain pool type.
- Allocates the number bytes specified by AllocationSize of a certian pool type, clears the buffer
+ Allocates the number bytes specified by AllocationSize of a certain pool type, clears the buffer
with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a valid
buffer of 0 size is returned. If there is not enough memory remaining to satisfy the request,
then NULL is returned.
@@ -513,9 +513,9 @@ AllocateReservedZeroPool ( }
/**
- Copies a buffer to an allocated buffer of a certian pool type.
+ Copies a buffer to an allocated buffer of a certain pool type.
- Allocates the number bytes specified by AllocationSize of a certian pool type, copies
+ Allocates the number bytes specified by AllocationSize of a certain pool type, copies
AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there
is not enough memory remaining to satisfy the request, then NULL is returned.
@@ -670,6 +670,10 @@ InternalReallocatePool ( {
VOID *NewBuffer;
+ //
+ // Check the boundary for OldBuffer even if the allocation failure.
+ //
+ ASSERT (OldBuffer == NULL || MIN (OldSize, NewSize) <= MAX_ADDRESS - (UINTN) OldBuffer + 1);
NewBuffer = InternalAllocateZeroPool (PoolType, NewSize);
if (NewBuffer != NULL && OldBuffer != NULL) {
CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize));
@@ -780,7 +784,7 @@ ReallocateReservedPool ( Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the
pool allocation services of the Memory Allocation Library. If it is not possible to free pool
- resources, then this function will peform no actions.
+ resources, then this function will perform no actions.
If Buffer was not allocated with a pool allocation function in the Memory Allocation Library,
then ASSERT().
diff --git a/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c index 08bb2921ab..668372223c 100644 --- a/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c @@ -128,7 +128,7 @@ AllocateReservedPages ( Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer
must have been allocated on a previous call to the page allocation services of the Memory
Allocation Library. If it is not possible to free allocated pages, then this function will
- peform no actions.
+ perform no actions.
If Buffer was not allocated with a page allocation function in the Memory Allocation Library,
then ASSERT().
@@ -325,7 +325,7 @@ AllocateAlignedReservedPages ( Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer
must have been allocated on a previous call to the aligned page allocation services of the Memory
Allocation Library. If it is not possible to free allocated pages, then this function will
- peform no actions.
+ perform no actions.
If Buffer was not allocated with an aligned page allocation function in the Memory Allocation
Library, then ASSERT().
@@ -442,9 +442,9 @@ AllocateReservedPool ( }
/**
- Allocates and zeros a buffer of a certian pool type.
+ Allocates and zeros a buffer of a certain pool type.
- Allocates the number bytes specified by AllocationSize of a certian pool type, clears the buffer
+ Allocates the number bytes specified by AllocationSize of a certain pool type, clears the buffer
with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a valid
buffer of 0 size is returned. If there is not enough memory remaining to satisfy the request,
then NULL is returned.
@@ -537,9 +537,9 @@ AllocateReservedZeroPool ( }
/**
- Copies a buffer to an allocated buffer of a certian pool type.
+ Copies a buffer to an allocated buffer of a certain pool type.
- Allocates the number bytes specified by AllocationSize of a certian pool type, copies
+ Allocates the number bytes specified by AllocationSize of a certain pool type, copies
AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the
allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there
is not enough memory remaining to satisfy the request, then NULL is returned.
@@ -685,6 +685,10 @@ InternalReallocatePool ( {
VOID *NewBuffer;
+ //
+ // Check the boundary for OldBuffer even if the allocation failure.
+ //
+ ASSERT (OldBuffer == NULL || MIN (OldSize, NewSize) <= MAX_ADDRESS - (UINTN) OldBuffer + 1);
NewBuffer = InternalAllocateZeroPool (PoolType, NewSize);
if (NewBuffer != NULL && OldBuffer != NULL) {
CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize));
@@ -795,7 +799,7 @@ ReallocateReservedPool ( Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the
pool allocation services of the Memory Allocation Library. If it is not possible to free pool
- resources, then this function will peform no actions.
+ resources, then this function will perform no actions.
If Buffer was not allocated with a pool allocation function in the Memory Allocation Library,
then ASSERT().
|