Fix memory leak I introduced in revision 14343 and fix buffer size calculation to save 4 bytes.
Modified: trunk/reactos/lib/kernel32/misc/ldr.c

Modified: trunk/reactos/lib/kernel32/misc/ldr.c
--- trunk/reactos/lib/kernel32/misc/ldr.c	2005-03-27 13:02:06 UTC (rev 14348)
+++ trunk/reactos/lib/kernel32/misc/ldr.c	2005-03-27 13:03:30 UTC (rev 14349)
@@ -56,10 +56,10 @@
 		Length = (lpModuleEnd - lpModule) + 1;		
 	}
 
-	Length += GetCurrentDirectoryW(0, NULL) + 1;
-	Length += GetSystemDirectoryW(NULL, 0) + 1;
-	Length += GetWindowsDirectoryW(NULL, 0) + 1;
-	Length += GetEnvironmentVariableW(L"PATH", NULL, 0) + 1;
+	Length += GetCurrentDirectoryW(0, NULL);
+	Length += GetSystemDirectoryW(NULL, 0);
+	Length += GetWindowsDirectoryW(NULL, 0);
+	Length += GetEnvironmentVariableW(L"PATH", NULL, 0);
 
 	EnvironmentBufferW = RtlAllocateHeap(RtlGetProcessHeap(), 0,
                                              Length * sizeof(WCHAR));
@@ -181,8 +181,9 @@
 	SearchPath = GetDllLoadPath(
 	  dwFlags & LOAD_WITH_ALTERED_SEARCH_PATH ? lpLibFileName : NULL);
 
-	RtlInitUnicodeString (&DllName, (LPWSTR)lpLibFileName);
+	RtlInitUnicodeString(&DllName, (LPWSTR)lpLibFileName);
 	Status = LdrLoadDll(SearchPath, dwFlags, &DllName, (PVOID*)&hInst);
+	RtlFreeHeap(RtlGetProcessHeap(), 0, SearchPath);
 	if ( !NT_SUCCESS(Status))
 	{
 		SetLastErrorByStatus (Status);