Author: pschweitzer
Date: Mon Oct 27 12:35:58 2014
New Revision: 65041

URL: http://svn.reactos.org/svn/reactos?rev=65041&view=rev
Log:
[NTFS]
Bugfixing... Part 10/X:
- Properly compute entry name length in CompareFileName()
- Also, in CompareFileName() properly handle the return of 
RtlCompareUnicodeString(); this is not RtlEqualUnicodeString()!
- In NtfsLookupFileAt(), don't return an error when we're done walking the 
path, it's a normal behavior

All these fixes allow our NTFS to go one step farther: it can open 
directory/files (reading files data remains untested so far) in root and in its 
subdirs. Which was broken previously.
The said bugfixes in action (and in image): 
http://www.heisspiter.net/~Pierre/rostests/NTFS_listing_subdir.png

Modified:
    trunk/reactos/drivers/filesystems/ntfs/mft.c

Modified: trunk/reactos/drivers/filesystems/ntfs/mft.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/mft.c?rev=65041&r1=65040&r2=65041&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/ntfs/mft.c        [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ntfs/mft.c        [iso-8859-1] Mon Oct 27 
12:35:58 2014
@@ -469,7 +469,7 @@
 
     EntryName.Buffer = IndexEntry->FileName.Name;
     EntryName.Length = 
-    EntryName.MaximumLength = IndexEntry->FileName.NameLength;
+    EntryName.MaximumLength = IndexEntry->FileName.NameLength * sizeof(WCHAR);
 
     if (DirSearch)
     {
@@ -477,7 +477,7 @@
     }
     else
     {
-        return (RtlCompareUnicodeString(FileName, &EntryName, 
(IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX)) == TRUE);
+        return (RtlCompareUnicodeString(FileName, &EntryName, 
(IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX)) == 0);
     }
 }
 
@@ -702,7 +702,7 @@
         }
 
         if (Remaining.Length == 0)
-            return STATUS_OBJECT_PATH_NOT_FOUND;
+            break;
 
         FsRtlDissectName(Current, &Current, &Remaining);
     }


Reply via email to