Fix cluster start calculation for FAT32.

This commit is contained in:
2019-04-28 17:44:47 +01:00
parent 7b3d5d3f11
commit baf6f46eb2
4 changed files with 11 additions and 18 deletions

View File

@@ -56,8 +56,7 @@ namespace DiscImageChef.Filesystems.FAT
if(fileBlock >= clusters.Length) return Errno.InvalidArgument;
deviceBlock = (long)(firstClusterSector +
(ulong)((clusters[fileBlock] - (fat32 ? 2 : 0)) * sectorsPerCluster));
deviceBlock = (long)(firstClusterSector + clusters[fileBlock] * sectorsPerCluster);
return Errno.NoError;
}
@@ -103,9 +102,8 @@ namespace DiscImageChef.Filesystems.FAT
{
if(i + firstCluster >= clusters.Length) return Errno.InvalidArgument;
byte[] buffer =
image.ReadSectors(firstClusterSector + (ulong)((clusters[i + firstCluster] - (fat32 ? 2 : 0)) * sectorsPerCluster),
sectorsPerCluster);
byte[] buffer = image.ReadSectors(firstClusterSector + clusters[i + firstCluster] * sectorsPerCluster,
sectorsPerCluster);
ms.Write(buffer, 0, buffer.Length);
}