[Bug 48960] New: NtQueryDirectoryFile incorrectly returns STATUS_NO_MORE_FILES when it encounters an ignored entry

WineHQ Bugzilla wine-bugs at winehq.org
Sat Apr 18 06:19:35 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=48960

            Bug ID: 48960
           Summary: NtQueryDirectoryFile incorrectly returns
                    STATUS_NO_MORE_FILES when it encounters an ignored
                    entry
           Product: Wine
           Version: 5.6
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: 2858628868 at qq.com
      Distribution: ---

I encountered a problem when compiling a .cc file with cl.exe in the HOME
directory. The compiler always reports that the .cc file cannot be found. After
some digging, I found that c1xx.dll of cl.exe used NtQueryDirectoryFile to
enumerate files and confirm whether it existed. Unfortunately, there is a
WINEPREFIX directory in the HOME directory, and NtQueryDirectoryFile consider
it should be ignored (it is ignored in the get_dir_data_entry function). When
NtQueryDirectoryFile enumerates by a single entry, it will return
STATUS_NO_MORE_FILES prematurely if it encounters an ignored entry. The
enumeration loop in c1xx.dll therefore exited early and reported that the .cc
file could not be found.

My WINE version is 4.0. After checking the source code, I confirmed that this
problem also exists in the 5.x version.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list