From a7d87e8b1a947772432eb662884cbb5fc67ae368 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 30 Dec 2015 11:45:27 +0000 Subject: [PATCH] * DiscImageChef/Main.cs: * DiscImageChef/Options.cs: * DiscImageChef/DiscImageChef.csproj: * DiscImageChef/Commands/MediaScan.cs: Added media-scan command. * DiscImageChef.Decoders/SCSI/Inquiry.cs: Fixes decoding for devices that follow old 5-byte SCSI INQUIRY format. * DiscImageChef.Decoders/SCSI/Sense.cs: Fixes printing of sense block missing a newline. * DiscImageChef.Devices/Device/Variables.cs: * DiscImageChef.Devices/Device/Constructor.cs: Added an IsRemovable field. * DiscImageChef.Devices/Device/ScsiCommands.cs: Fixed SCSI READ CAPACITY CDB size. Fixed READ CD-DA MSF method name. Implemented SCSI SEEK (6) and SEEK (10) commands. * DiscImageChef.Devices/Linux/Command.cs: * DiscImageChef.Devices/Windows/Command.cs: Fixed memory leaking on unmanaged heap. * DiscImageChef.Helpers/StringHandlers.cs: Fixed string conversion when input byte array is null. * DiscImageChef/Commands/MediaInfo.cs: Check for inserted medium only on removable media devices. --- ChangeLog | 9 +++++++++ SCSI/Inquiry.cs | 4 ++-- SCSI/Sense.cs | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5df74e52..0efc4273d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2015-12-30 Natalia Portillo + + * SCSI/Inquiry.cs: + Fixes decoding for devices that follow old 5-byte SCSI + INQUIRY format. + + * SCSI/Sense.cs: + Fixes printing of sense block missing a newline. + 2015-12-14 Natalia Portillo * CD/ATIP.cs: diff --git a/SCSI/Inquiry.cs b/SCSI/Inquiry.cs index 8cd756614..258783cfd 100644 --- a/SCSI/Inquiry.cs +++ b/SCSI/Inquiry.cs @@ -61,9 +61,9 @@ namespace DiscImageChef.Decoders.SCSI if (SCSIInquiryResponse == null) return null; - if (SCSIInquiryResponse.Length < 36) + if (SCSIInquiryResponse.Length < 36 && SCSIInquiryResponse.Length != 5) { - DicConsole.DebugWriteLine("SCSI INQUIRY decoder", "INQUIRY response is less than minimum of 36 bytes, decoded data can be incorrect, not decoding."); + DicConsole.DebugWriteLine("SCSI INQUIRY decoder", "INQUIRY response is {0} bytes, less than minimum of 36 bytes, decoded data can be incorrect, not decoding.", SCSIInquiryResponse.Length); return null; } diff --git a/SCSI/Sense.cs b/SCSI/Sense.cs index 02ba3cb1a..2be7c39e6 100644 --- a/SCSI/Sense.cs +++ b/SCSI/Sense.cs @@ -425,7 +425,7 @@ namespace DiscImageChef.Decoders.SCSI if (decoded.ILI) sb.AppendLine("Incorrect length indicator"); if (decoded.InformationValid) - sb.AppendFormat("On logical block {0}", decoded.Information); + sb.AppendFormat("On logical block {0}", decoded.Information).AppendLine(); if (decoded.AdditionalLength < 6) return sb.ToString();