https://bugs.winehq.org/show_bug.cgi?id=50036
Bug ID: 50036 Summary: Remaining issues in Bugs in ntdll-Junction_Points in staging Product: Wine-staging Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: martin@martin.st CC: erich.e.hoover@gmail.com, leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: ---
Created attachment 68477 --> https://bugs.winehq.org/attachment.cgi?id=68477 Test code for showing the issue
With the ntdll-Junction_Points, there's a few remaining issues that are unimplemented:
- When opening a symbolic link with CreateFile(), it doesn't take the FILE_FLAG_OPEN_REPARSE_POINT flag into account. E.g. if the symlink points at a nonexistent file, if the link is opened with CreateFile() with the FILE_FLAG_OPEN_REPARSE_POINT flag set, the operation should succeed (inspecting the link), but without the flag, it should fail (as the link points at a nonexistent file). Currently, it succeeds in both cases.
- If inspecting the handle opened with CreateFile() with GetFileInformationByHandleEx(FileAttributeTagInfo), the ReparseTag field is left zero.
This can be tested with the attached test app. On real windows, it prints something like this:
CreateFile(FILE_FLAG_OPEN_REPARSE_POINT) = 0000000000000094 ReparseTag = a000000c CreateFile(0) = FFFFFFFFFFFFFFFF
While on wine with the ntdll-Junction_Points patchset applied, it prints:
CreateFile(FILE_FLAG_OPEN_REPARSE_POINT) = 000000000000003C ReparseTag = 0 CreateFile(0) = 000000000000003C ReparseTag = 0