[NTFS] Don't perform overzealous checks on bitmap while reading a directory
authorPierre Schweitzer <pierre@reactos.org>
Sat, 1 Dec 2018 20:50:54 +0000 (21:50 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 1 Dec 2018 20:52:55 +0000 (21:52 +0100)
This avoids partial direactory reads where we believe they are corrupted
while they are not.

drivers/filesystems/ntfs/mft.c

index 24f28e0..f03074c 100644 (file)
@@ -2823,13 +2823,10 @@ BrowseSubNodeIndexEntries(PNTFS_VCB Vcb,
     // Is the bit for this node clear in the bitmap?
     if (!RtlCheckBit(Bitmap, NodeNumber))
     {
-        DPRINT1("File system corruption detected, node with VCN %I64u is being reused or is marked as deleted.\n", VCN);
+        DPRINT1("File system corruption detected, node with VCN %I64u is marked as deleted.\n", VCN);
         return STATUS_DATA_ERROR;
     }
 
-    // Clear the bit for this node so it can't be recursively referenced
-    RtlClearBits(Bitmap, NodeNumber, 1);
-
     // Allocate memory for the index record
     IndexRecord = ExAllocatePoolWithTag(NonPagedPool, IndexBlockSize, TAG_NTFS);
     if (!IndexRecord)