From c8e90e9d05d69c8f86e2e26e84c697d383510234 Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Sat, 29 May 2010 12:31:48 +0000 Subject: [PATCH 1/1] [KERNEL32] ReplaceFileW: - Initialize Unicode string structure, so that only allocated buffers are freed when leaving the function - Fixes several heap warnings in kernel32:file test svn path=/trunk/; revision=47407 --- reactos/dll/win32/kernel32/file/file.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/reactos/dll/win32/kernel32/file/file.c b/reactos/dll/win32/kernel32/file/file.c index 66046621821..cdbafd08839 100644 --- a/reactos/dll/win32/kernel32/file/file.c +++ b/reactos/dll/win32/kernel32/file/file.c @@ -1906,7 +1906,8 @@ ReplaceFileW( ) { HANDLE hReplaced = NULL, hReplacement = NULL; - UNICODE_STRING NtReplacedName, NtReplacementName; + UNICODE_STRING NtReplacedName = { 0, 0, NULL }; + UNICODE_STRING NtReplacementName = { 0, 0, NULL }; DWORD Error = ERROR_SUCCESS; NTSTATUS Status; BOOL Ret = FALSE; @@ -2029,8 +2030,10 @@ Cleanup: if (hReplacement) NtClose(hReplacement); if (Buffer) RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer); - RtlFreeUnicodeString(&NtReplacementName); - RtlFreeUnicodeString(&NtReplacedName); + if (NtReplacementName.Buffer) + RtlFreeHeap(GetProcessHeap(), 0, NtReplacementName.Buffer); + if (NtReplacedName.Buffer) + RtlFreeHeap(GetProcessHeap(), 0, NtReplacedName.Buffer); /* If there was an error, set the error code */ if(!Ret) -- 2.17.1