From f448b79e7936caa256346a8375fd57552f4c7601 Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" Date: Thu, 20 Nov 2003 23:44:13 +0000 Subject: [PATCH] RtlReAllocateHeap() does not allocate memory. --- dlls/ntdll/path.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/path.c b/dlls/ntdll/path.c index 5d176e1c979..3d11067d11b 100644 --- a/dlls/ntdll/path.c +++ b/dlls/ntdll/path.c @@ -282,8 +282,15 @@ ULONG WINAPI RtlDosSearchPath_U(LPCWSTR paths, LPCWSTR search, LPCWSTR ext, for (needed = 0, ptr = paths; *ptr != 0 && *ptr++ != ';'; needed++); if (needed + filelen > allocated) { - name = (WCHAR*)RtlReAllocateHeap(ntdll_get_process_heap(), 0, - name, (needed + filelen) * sizeof(WCHAR)); + if (!name) name = RtlAllocateHeap(GetProcessHeap(), 0, + (needed + filelen) * sizeof(WCHAR)); + else + { + WCHAR *newname = RtlReAllocateHeap(GetProcessHeap(), 0, name, + (needed + filelen) * sizeof(WCHAR)); + if (!newname) RtlFreeHeap(GetProcessHeap(), 0, name); + name = newname; + } if (!name) return 0; allocated = needed + filelen; }