Alexandre Julliard : kernel32: Don' t skip directory symlinks when looking for a specific file.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 1 07:39:34 CDT 2007


Module: wine
Branch: master
Commit: f807f2d457222778da2244ae53cefaeecda04383
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f807f2d457222778da2244ae53cefaeecda04383

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue May  1 14:32:33 2007 +0200

kernel32: Don't skip directory symlinks when looking for a specific file.

---

 dlls/kernel32/file.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index d0b84cf..6b2fb49 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -71,6 +71,7 @@ typedef struct
 
 static BOOL oem_file_apis;
 
+static const WCHAR wildcardsW[] = { '*','?',0 };
 
 /***********************************************************************
  *              create_file_OF
@@ -1559,7 +1560,6 @@ HANDLE WINAPI FindFirstFileExW( LPCWSTR filename, FINDEX_INFO_LEVELS level,
                                 LPVOID data, FINDEX_SEARCH_OPS search_op,
                                 LPVOID filter, DWORD flags)
 {
-    static const WCHAR wildcardsW[] = { '*','?',0 };
     WCHAR *mask, *p;
     FIND_FIRST_INFO *info = NULL;
     UNICODE_STRING nt_name;
@@ -1787,7 +1787,8 @@ BOOL WINAPI FindNextFileW( HANDLE handle, WIN32_FIND_DATAW *data )
 
         /* check for dir symlink */
         if ((dir_info->FileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
-            (dir_info->FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT))
+            (dir_info->FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) &&
+            strpbrkW( info->mask.Buffer, wildcardsW ))
         {
             if (!check_dir_symlink( info, dir_info )) continue;
         }




More information about the wine-cvs mailing list