Mike Hearn : kernel: Correct SearchPathA argument validation.
Module: wine Branch: refs/heads/master Commit: 679df54b6c39bc3f87c96400d42c402d924eb434 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=679df54b6c39bc3f87c96400... Author: Mike Hearn <mike(a)plan99.net> Date: Fri Apr 7 17:15:44 2006 +0100 kernel: Correct SearchPathA argument validation. --- dlls/kernel/path.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dlls/kernel/path.c b/dlls/kernel/path.c index 66c1e84..d3fd764 100644 --- a/dlls/kernel/path.c +++ b/dlls/kernel/path.c @@ -722,7 +722,7 @@ inline static BOOL contains_pathW (LPCWS * Searches for a specified file in the search path. * * PARAMS - * path [I] Path to search + * path [I] Path to search (NULL means default) * name [I] Filename to search for. * ext [I] File extension to append to file name. The first * character must be a period. This parameter is @@ -818,12 +818,13 @@ DWORD WINAPI SearchPathW( LPCWSTR path, DWORD WINAPI SearchPathA( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen, LPSTR buffer, LPSTR *lastpart ) { - WCHAR *pathW, *nameW = NULL, *extW = NULL; + WCHAR *pathW = NULL, *nameW = NULL, *extW = NULL; WCHAR bufferW[MAX_PATH]; DWORD ret; - if (name && !(nameW = FILE_name_AtoW( name, FALSE ))) return 0; - if (!(pathW = FILE_name_AtoW( path, TRUE ))) return 0; + if (!name || !(nameW = FILE_name_AtoW( name, FALSE ))) return 0; + if (path && !(pathW = FILE_name_AtoW( path, TRUE ))) return 0; + if (ext && !(extW = FILE_name_AtoW( ext, TRUE ))) { HeapFree( GetProcessHeap(), 0, pathW );
participants (1)
-
Alexandre Julliard