From 91de7b5fd3627d4e2d77ddc71b75d0403ec2c5fb Mon Sep 17 00:00:00 2001 From: Jeffrey Morlan Date: Thu, 23 Jul 2009 20:48:43 +0000 Subject: [PATCH] LoadLibraryExW: After loading a library as a datafile, clean up properly (don't leak SearchPath, and don't free DllName if we didn't allocate it) svn path=/trunk/; revision=42163 --- reactos/dll/win32/kernel32/misc/ldr.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/reactos/dll/win32/kernel32/misc/ldr.c b/reactos/dll/win32/kernel32/misc/ldr.c index 9fba9583e52..a967fc6ffa6 100644 --- a/reactos/dll/win32/kernel32/misc/ldr.c +++ b/reactos/dll/win32/kernel32/misc/ldr.c @@ -266,14 +266,7 @@ LoadLibraryExW ( * 'native' libraries only */ Status = LoadLibraryAsDatafile(SearchPath, DllName.Buffer, &hInst); - RtlFreeUnicodeString(&DllName); - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus(Status); - return NULL; - } - - return hInst; + goto done; } } @@ -292,6 +285,7 @@ LoadLibraryExW ( Status = LdrLoadDll(SearchPath, &dwFlags, &DllName, (PVOID*)&hInst); } +done: RtlFreeHeap(RtlGetProcessHeap(), 0, SearchPath); if (FreeString) RtlFreeUnicodeString(&DllName);