From 5ed59b48d28eb00250940544889ca105d477e08a Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 10 Jul 2017 21:37:31 +0100 Subject: [PATCH] Added more sanity checks. --- DiscImageChef.Filesystems/CPM/Info.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/DiscImageChef.Filesystems/CPM/Info.cs b/DiscImageChef.Filesystems/CPM/Info.cs index c92a167d..f5648d29 100644 --- a/DiscImageChef.Filesystems/CPM/Info.cs +++ b/DiscImageChef.Filesystems/CPM/Info.cs @@ -865,15 +865,21 @@ namespace DiscImageChef.Filesystems.CPM int interleaveSide1; int interleaveSide2 = 1; - interleaveSide1 = workingDefinition.side1.sectorIds[1] - workingDefinition.side1.sectorIds[0]; - if(interleaveSide1 > 1) - sb.AppendFormat("Side 0 uses {0}:1 software interleaving", interleaveSide1).AppendLine(); + if(workingDefinition.side1.sectorIds.Length >= 2) + { + interleaveSide1 = workingDefinition.side1.sectorIds[1] - workingDefinition.side1.sectorIds[0]; + if(interleaveSide1 > 1) + sb.AppendFormat("Side 0 uses {0}:1 software interleaving", interleaveSide1).AppendLine(); + } if(workingDefinition.sides == 2) { - interleaveSide2 = workingDefinition.side2.sectorIds[1] - workingDefinition.side2.sectorIds[0]; - if(interleaveSide2 > 1) - sb.AppendFormat("Side 1 uses {0}:1 software interleaving", interleaveSide2).AppendLine(); + if(workingDefinition.side2.sectorIds.Length >= 2) + { + interleaveSide2 = workingDefinition.side2.sectorIds[1] - workingDefinition.side2.sectorIds[0]; + if(interleaveSide2 > 1) + sb.AppendFormat("Side 1 uses {0}:1 software interleaving", interleaveSide2).AppendLine(); + } switch(workingDefinition.order) { case "SIDES":