From 8a5d0c6a8d21c8c3429adf80aa2cf83e2524c043 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Fri, 30 Oct 2015 03:54:37 +0000 Subject: [PATCH] Modify mode page 01h decoding for CD-ROM returned mode page size. --- ChangeLog | 6 ++++++ SCSI/Modes.cs | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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]);