diff --git a/ChangeLog b/ChangeLog index 7324f6922..b5b47c3b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-10-30 Natalia Portillo + + * SCSI/Modes.cs: + Modify mode page 01h decoding for CD-ROM returned mode page + size. + 2015-10-30 Natalia Portillo * SCSI/Modes.cs: diff --git a/SCSI/Modes.cs b/SCSI/Modes.cs index f399901f9..72c84c2c2 100644 --- a/SCSI/Modes.cs +++ b/SCSI/Modes.cs @@ -2216,7 +2216,7 @@ namespace DiscImageChef.Decoders.SCSI if (pageResponse[1] + 2 != pageResponse.Length) return null; - if (pageResponse.Length < 12) + if (pageResponse.Length < 8) return null; ModePage_01 decoded = new ModePage_01(); @@ -2235,6 +2235,10 @@ namespace DiscImageChef.Decoders.SCSI decoded.CorrectionSpan = pageResponse[4]; decoded.HeadOffsetCount = (sbyte)pageResponse[5]; decoded.DataStrobeOffsetCount = (sbyte)pageResponse[6]; + + if (pageResponse.Length < 12) + return decoded; + decoded.WriteRetryCount = pageResponse[8]; decoded.RecoveryTimeLimit = (ushort)((pageResponse[10] << 8) + pageResponse[11]);