From f4d29a74aabf7e5f4cb74a1694de08cd02fe7879 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sat, 1 Dec 2018 21:50:54 +0100 Subject: [PATCH] [NTFS] Don't perform overzealous checks on bitmap while reading a directory This avoids partial direactory reads where we believe they are corrupted while they are not. --- drivers/filesystems/ntfs/mft.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index 24f28e0936c..f03074cdfda 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -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)