On Jul 17 01:17, Eric Blake wrote: > Eric Blake <ebb9 <at> byu.net> writes: > > > Does the fact that MVFS is including the trailing NUL in fsname.Length, but > > ro_u_mvfs is not, relevant to RtlEqualUnicodeString returning false, even > > though the two Buffers are identical over their MaximumLength? > > > > Sure enough, your patch plus this one-liner is enough to make symlinks work on > MVFS once again! > > diff --git i/winsup/cygwin/globals.cc w/winsup/cygwin/globals.cc > index ef17534..1cd6b19 100644 > --- i/winsup/cygwin/globals.cc > +++ w/winsup/cygwin/globals.cc > @@ -89,7 +89,7 @@ UNICODE_STRING _RDATA ro_u_uncp = _ROU (L"\\??\\UNC\\"); > UNICODE_STRING _RDATA ro_u_mtx = _ROU (L"mtx"); > UNICODE_STRING _RDATA ro_u_csc = _ROU (L"CSC-CACHE"); > UNICODE_STRING _RDATA ro_u_fat = _ROU (L"FAT"); > -UNICODE_STRING _RDATA ro_u_mvfs = _ROU (L"MVFS"); > +UNICODE_STRING _RDATA ro_u_mvfs = _ROU (L"MVFS\0"); > UNICODE_STRING _RDATA ro_u_nfs = _ROU (L"NFS"); > UNICODE_STRING _RDATA ro_u_ntfs = _ROU (L"NTFS"); > UNICODE_STRING _RDATA ro_u_sunwnfs = _ROU (L"SUNWNFS");
Can we be sure that every version of MVFS has this obvious bug in the name? I'd rather replace the following line in mount.cc, fs_info::update() (~line 246): && !is_mvfs (RtlEqualUnicodeString (&fsname, &ro_u_mvfs, FALSE)) with && !is_mvfs (RtlEqualUnicodePathPrefix (&fsname, &ro_u_mvfs, FALSE)) This checks for a MVFS prefix instead of equality of the entire string. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple