[NTFS]
authorTrevor Thompson <tmt256@email.vccs.edu>
Fri, 8 Jul 2016 12:05:19 +0000 (12:05 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 10 Dec 2017 10:13:55 +0000 (11:13 +0100)
Fix broken check for free disk space in NtfsAllocateClusters().

svn path=/branches/GSoC_2016/NTFS/; revision=71858

drivers/filesystems/ntfs/volinfo.c

index 68a1050..d1505a5 100644 (file)
@@ -162,8 +162,14 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt,
     RtlInitializeBitMap(&Bitmap, (PULONG)BitmapData, DeviceExt->NtfsInfo.ClusterCount);
     FreeClusters = RtlNumberOfClearBits(&Bitmap);
 
-    if( FreeClusters < DesiredClusters )
-        Status = STATUS_DISK_FULL;
+    if (FreeClusters < DesiredClusters)
+    {
+        ReleaseAttributeContext(DataContext);
+
+        ExFreePoolWithTag(BitmapData, TAG_NTFS);
+        ExFreePoolWithTag(BitmapRecord, TAG_NTFS);
+        return STATUS_DISK_FULL;
+    }
     
     // TODO: Observe MFT reservation zone