[Bug 43240] Java 8 believes the filesystem is read-only

WineHQ Bugzilla wine-bugs at winehq.org
Sat Feb 5 01:14:40 CST 2022


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

Damjan Jovanovic <damjan.jov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |source, testcase

--- Comment #3 from Damjan Jovanovic <damjan.jov at gmail.com> ---
Still a bug in Wine 7.1.

The proximal cause is in dlls/kernelbase/volume.c function
GetVolumeInformationW().

When there is no Wine drive mapping for the *nix mountpoint, the volume's root
directory will be a compound path with multiple backslashes, eg. Z:\\tmp\\ in
your case. The nt_name in that function becomes \\??\\Z:\\tmp\\. The i variable
stops at the end of "\\??\\Z:\\", ignoring the "tmp\\" suffix. The check for i
being at the end of the string fails, and since the string contains a 2nd
backslash, the function fails early with:
    SetLastError( ERROR_DIR_NOT_ROOT );
eventually leading to java.nio.file.Files.isWritable() returning false.

Under dlls/kernel32/tests/volume.c function test_GetVolumeInformationA() we see
how ERROR_DIR_NOT_ROOT is expected even on "C:\\Windows\\".

But where is the root cause?
1. Should GetVolumePathName() return Z:\\ instead of Z:\\tmp, since Z:\\tmp is
not a mapped drive, so that GetVolumeInformation() gets called with Z:\\ and
works?
2. Should GetVolumeInformation() detect non-root paths differently? I think
Windows allows mounting without allocating a driver letter, does it allow the
mountpoint's long path to be passed to GetVolumeInformation() then?
3. Is the current behaviour already the best we can do, ie. should *nix
mountpoints without corresponding drive mapping in Wine be semi-visible and
semi-functional to Windows applications like they are now?

-- 
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