mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 05:35:56 +00:00
fixing malloc and realloc so it return right value
do not mix the doc over malloc and realloc. Thanks filip <filip2307> malloc(0) -> valid buffer <GreatLord> then I revert that change <filip2307> realloc(<non-null pointer>, 0) -> NULL <filip2307> realloc(NULL, 0) -> valid buffer svn path=/trunk/; revision=22197
This commit is contained in:
parent
f895d5ab82
commit
4eada6f8bd
1 changed files with 4 additions and 12 deletions
|
@ -36,12 +36,7 @@ extern HANDLE hHeap;
|
|||
*/
|
||||
void* malloc(size_t _size)
|
||||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
return NULL;
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
size_t nSize = ROUND_SIZE(_size);
|
||||
|
||||
if (nSize<_size)
|
||||
return NULL;
|
||||
|
@ -65,7 +60,7 @@ void* calloc(size_t _nmemb, size_t _size)
|
|||
size_t nSize = _nmemb * _size;
|
||||
size_t cSize = ROUND_SIZE(nSize);
|
||||
|
||||
if ((_nmemb > ((size_t)-1 / _size) || (nSize == 0) || (cSize<nSize))
|
||||
if ((_nmemb > ((size_t)-1 / _size) || (cSize<nSize))
|
||||
return NULL;
|
||||
|
||||
return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, cSize );
|
||||
|
@ -78,7 +73,7 @@ void* realloc(void* _ptr, size_t _size)
|
|||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
if (( _size == 0) && (_ptr !=NULL)
|
||||
return NULL;
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
|
@ -98,10 +93,7 @@ void* realloc(void* _ptr, size_t _size)
|
|||
void* _expand(void* _ptr, size_t _size)
|
||||
{
|
||||
size_t nSize;
|
||||
|
||||
if ( _size == 0)
|
||||
return NULL;
|
||||
|
||||
|
||||
nSize = ROUND_SIZE(_size);
|
||||
|
||||
if (nSize<_size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue