Changed allocation of arguments in SearchPathA so path is not limited
authorAlexander Yaworsky <yaworsky@migusoft.ru>
Mon, 22 Nov 2004 18:25:05 +0000 (18:25 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 22 Nov 2004 18:25:05 +0000 (18:25 +0000)
by size of TEB static buffer.

dlls/kernel/path.c

index 076908fa348312925c2a360a42f4d579e7c7b75c..344931aee86622a2b78283f6a3dfac6a32f42a29 100644 (file)
@@ -819,17 +819,17 @@ DWORD WINAPI SearchPathA( LPCSTR path, LPCSTR name, LPCSTR ext,
     WCHAR bufferW[MAX_PATH];
     DWORD ret;
 
-    if (!(pathW = FILE_name_AtoW( path, FALSE ))) return 0;
-    if (name && !(nameW = FILE_name_AtoW( name, TRUE ))) return 0;
+    if (name && !(nameW = FILE_name_AtoW( name, FALSE ))) return 0;
+    if (!(pathW = FILE_name_AtoW( path, TRUE ))) return 0;
     if (ext && !(extW = FILE_name_AtoW( ext, TRUE )))
     {
-        if (nameW) HeapFree( GetProcessHeap(), 0, nameW );
+        HeapFree( GetProcessHeap(), 0, pathW );
         return 0;
     }
 
     ret = SearchPathW(pathW, nameW, extW, MAX_PATH, bufferW, NULL);
 
-    if (nameW) HeapFree( GetProcessHeap(), 0, nameW );
+    HeapFree( GetProcessHeap(), 0, pathW );
     if (extW) HeapFree( GetProcessHeap(), 0, extW );
 
     if (!ret) return 0;