From: Filip Navara Date: Sat, 28 Aug 2004 22:14:08 +0000 (+0000) Subject: - RtlReAllocateHeap shouldn't allocate memory if ptr == NULL. X-Git-Tag: backups/alex_2gb+hdrtests@12432~435 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=b1f6932d44f57bca96402f93f1a476fcd9046aa1;hp=034e6056343176d9cf99c83d0d93295049a6b018 - RtlReAllocateHeap shouldn't allocate memory if ptr == NULL. svn path=/trunk/; revision=10725 --- diff --git a/reactos/lib/crtdll/stdlib/malloc.c b/reactos/lib/crtdll/stdlib/malloc.c index 496affc80b9..e72b7cc0278 100644 --- a/reactos/lib/crtdll/stdlib/malloc.c +++ b/reactos/lib/crtdll/stdlib/malloc.c @@ -31,5 +31,7 @@ void* calloc(size_t _nmemb, size_t _size) */ void* realloc(void* _ptr, size_t _size) { + if (!_ptr) + return(HeapAlloc(GetProcessHeap(),0,_size)); return(HeapReAlloc(GetProcessHeap(),0,_ptr,_size)); } diff --git a/reactos/lib/kernel32/misc/console.c b/reactos/lib/kernel32/misc/console.c index 573c4e0e170..b93f0c8eabd 100644 --- a/reactos/lib/kernel32/misc/console.c +++ b/reactos/lib/kernel32/misc/console.c @@ -1,4 +1,4 @@ -/* $Id: console.c,v 1.78 2004/08/24 17:21:11 navaraf Exp $ +/* $Id: console.c,v 1.79 2004/08/28 22:14:08 navaraf Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -2682,11 +2682,17 @@ AddConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine) else { NrCtrlHandlers++; - CtrlHandlers = - RtlReAllocateHeap(RtlGetProcessHeap(), - HEAP_ZERO_MEMORY, - (PVOID)CtrlHandlers, - NrCtrlHandlers * sizeof(PHANDLER_ROUTINE)); + if (CtrlHandlers == NULL) + { + CtrlHandlers = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, + NrCtrlHandlers * sizeof(PHANDLER_ROUTINE)); + } + else + { + CtrlHandlers = RtlReAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, + (PVOID)CtrlHandlers, + NrCtrlHandlers * sizeof(PHANDLER_ROUTINE)); + } if (CtrlHandlers == NULL) { NrCtrlHandlers = 0; diff --git a/reactos/lib/rtl/heap.c b/reactos/lib/rtl/heap.c index c5f7c539652..755d813eb3c 100644 --- a/reactos/lib/rtl/heap.c +++ b/reactos/lib/rtl/heap.c @@ -1296,7 +1296,7 @@ LPVOID STDCALL RtlReAllocateHeap( SUBHEAP *subheap; if (!ptr) - return RtlAllocateHeap( heap, flags, size ); /* FIXME: correct? */ + return FALSE; if (!(heapPtr = HEAP_GetPtr( heap ))) return FALSE;