diff --git a/reactos/drivers/filesystems/ntfs/rw.c b/reactos/drivers/filesystems/ntfs/rw.c index be5ec28437b..0437b61d997 100644 --- a/reactos/drivers/filesystems/ntfs/rw.c +++ b/reactos/drivers/filesystems/ntfs/rw.c @@ -147,7 +147,10 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, RealLength = ROUND_UP(ToRead, DeviceExt->NtfsInfo.BytesPerSector); /* do we need to extend RealLength by one sector? */ if (RealLength + RealReadOffset < ReadOffset + Length) - RealLength += DeviceExt->NtfsInfo.BytesPerSector; + { + if (RealReadOffset + RealLength + DeviceExt->NtfsInfo.BytesPerSector <= AttributeAllocatedLength(&DataContext->Record)) + RealLength += DeviceExt->NtfsInfo.BytesPerSector; + } ReadBuffer = ExAllocatePoolWithTag(NonPagedPool, RealLength, TAG_NTFS);