From 67ed9860fe399b6ce195cb0396f1b0085169ea45 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 30 Jul 2025 11:26:04 -0400 Subject: [PATCH] Sync back deserialization fixes for CFB --- SabreTools.Serialization/Deserializers/CFB.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/SabreTools.Serialization/Deserializers/CFB.cs b/SabreTools.Serialization/Deserializers/CFB.cs index a78896d0..29f70b1a 100644 --- a/SabreTools.Serialization/Deserializers/CFB.cs +++ b/SabreTools.Serialization/Deserializers/CFB.cs @@ -92,9 +92,11 @@ namespace SabreTools.Serialization.Deserializers var fatSectors = new List(); // Loop through and add the FAT sectors - currentSector = binary.DIFATSectorNumbers[0]; for (int i = 0; i < fileHeader.NumberOfFATSectors; i++) { + // Get the next sector from the DIFAT + currentSector = binary.DIFATSectorNumbers[i]; + // If we have a readable sector if (currentSector <= SectorNumber.MAXREGSECT) { @@ -114,9 +116,6 @@ namespace SabreTools.Serialization.Deserializers // Add the sector shifts fatSectors.AddRange(sectorNumbers); } - - // Get the next sector from the DIFAT - currentSector = binary.DIFATSectorNumbers[i]; } // Assign the FAT sectors table @@ -153,8 +152,8 @@ namespace SabreTools.Serialization.Deserializers miniFatSectors.AddRange(sectorNumbers); } - // Get the next sector from the DIFAT - currentSector = binary.DIFATSectorNumbers[i]; + // Get the next sector from the FAT + currentSector = binary.FATSectorNumbers[(int)currentSector]; } // Assign the mini FAT sectors table