In get_buffer_space() function, HeapReAlloc() will not allocate memory

if passed *buffer value is NULL.
This commit is contained in:
Andrey Panov 2004-05-06 23:41:15 +00:00 committed by Alexandre Julliard
parent b41466b3b1
commit f4a535d61e
1 changed files with 8 additions and 2 deletions

View File

@ -254,8 +254,14 @@ inline static BOOL check_string( LPCWSTR str, size_t size )
inline static void *get_buffer_space( void **buffer, size_t size )
{
void *ret;
if (!(ret = HeapReAlloc( GetProcessHeap(), 0, *buffer, size )))
HeapFree( GetProcessHeap(), 0, *buffer );
if (*buffer)
{
if (!(ret = HeapReAlloc( GetProcessHeap(), 0, *buffer, size )))
HeapFree( GetProcessHeap(), 0, *buffer );
}
else ret = HeapAlloc( GetProcessHeap(), 0, size );
*buffer = ret;
return ret;
}