Minor update the function interface for three re-allocate pool APIs to check the conformance of OldBuffer only when the memory allocation succeeds. In this way the assert condition is covered by CopyMem () API in BaseMemoryLib.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8296 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2009-05-12 02:29:22 +00:00
parent d2b4564ba5
commit 5630456909
4 changed files with 30 additions and 42 deletions

View File

@ -663,8 +663,8 @@ AllocateReservedCopyPool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param PoolType The type of pool to allocate. @param PoolType The type of pool to allocate.
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@ -685,10 +685,6 @@ InternalReallocatePool (
{ {
VOID *NewBuffer; 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); NewBuffer = InternalAllocateZeroPool (PoolType, NewSize);
if (NewBuffer != NULL && OldBuffer != NULL) { if (NewBuffer != NULL && OldBuffer != NULL) {
CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize)); CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize));
@ -707,8 +703,8 @@ InternalReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -739,8 +735,8 @@ ReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -771,8 +767,8 @@ ReallocateRuntimePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.

View File

@ -390,8 +390,8 @@ AllocateReservedCopyPool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If NewSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
If OldSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -419,8 +419,8 @@ ReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If NewSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
If OldSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -448,8 +448,8 @@ ReallocateRuntimePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If NewSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
If OldSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.

View File

@ -648,8 +648,8 @@ AllocateReservedCopyPool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param PoolType The type of pool to allocate. @param PoolType The type of pool to allocate.
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@ -670,10 +670,6 @@ InternalReallocatePool (
{ {
VOID *NewBuffer; 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); NewBuffer = InternalAllocateZeroPool (PoolType, NewSize);
if (NewBuffer != NULL && OldBuffer != NULL) { if (NewBuffer != NULL && OldBuffer != NULL) {
CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize)); CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize));
@ -692,8 +688,8 @@ InternalReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -724,8 +720,8 @@ ReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -756,8 +752,8 @@ ReallocateRuntimePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.

View File

@ -663,8 +663,8 @@ AllocateReservedCopyPool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param PoolType The type of pool to allocate. @param PoolType The type of pool to allocate.
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@ -685,10 +685,6 @@ InternalReallocatePool (
{ {
VOID *NewBuffer; 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); NewBuffer = InternalAllocateZeroPool (PoolType, NewSize);
if (NewBuffer != NULL && OldBuffer != NULL) { if (NewBuffer != NULL && OldBuffer != NULL) {
CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize)); CopyMem (NewBuffer, OldBuffer, MIN (OldSize, NewSize));
@ -707,8 +703,8 @@ InternalReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -739,8 +735,8 @@ ReallocatePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.
@ -771,8 +767,8 @@ ReallocateRuntimePool (
If NewSize is 0, then a valid buffer of 0 size is returned. If there is not If NewSize 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. enough memory remaining to satisfy the request, then NULL is returned.
If the smaller of NewSize and OldSize is greater than (MAX_ADDRESS - OldBuffer + 1), If the allocation of the new buffer is successful and the smaller of NewSize and OldSize
then ASSERT(). is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT().
@param OldSize The size, in bytes, of OldBuffer. @param OldSize The size, in bytes, of OldBuffer.
@param NewSize The size, in bytes, of the buffer to reallocate. @param NewSize The size, in bytes, of the buffer to reallocate.