diff --git a/SabreTools.Serialization/Extensions/ISO9660.cs b/SabreTools.Serialization/Extensions/ISO9660.cs index cc1aaa81..6de9f7d0 100644 --- a/SabreTools.Serialization/Extensions/ISO9660.cs +++ b/SabreTools.Serialization/Extensions/ISO9660.cs @@ -55,7 +55,7 @@ namespace SabreTools.Data.Extensions /// /// Indicates if an array contains all ASCII numeric digits /// - /// TODO: Move to IO as an array extension + /// TODO: Remove when IO is updated public static bool IsNumericArray(this byte[] arr) => Array.TrueForAll(arr, b => b >= 0x30 && b <= 0x39); } diff --git a/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs b/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs index ccdf2f26..1aa783a9 100644 --- a/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs @@ -65,6 +65,10 @@ namespace SabreTools.Serialization.Wrappers // Read in the cabinet parts sequentially while (current.CabinetNext != null) { + // If the current and next filenames match + if (Path.GetFileName(filename) == current.CabinetNext) + break; + // Open the next cabinet and try to parse var next = current.OpenNext(filename); if (next?.Header == null)