From a12cfe256cc2bd209ee5fba6984b3d37d21c8caa Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 3 Aug 2021 03:48:16 +0100 Subject: [PATCH] Prevent writing non-long sectors in Alcohol 120% images. --- Aaru.Images/Alcohol120/Write.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Aaru.Images/Alcohol120/Write.cs b/Aaru.Images/Alcohol120/Write.cs index 3a38c1e92..027e70bf5 100644 --- a/Aaru.Images/Alcohol120/Write.cs +++ b/Aaru.Images/Alcohol120/Write.cs @@ -213,6 +213,13 @@ namespace Aaru.DiscImages _writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector && sectorAddress <= trk.TrackEndSector); + if(!_isDvd) + { + ErrorMessage = "Cannot write non-long sectors to CD images."; + + return false; + } + if(track is null) { ErrorMessage = $"Can't found track containing {sectorAddress}"; @@ -252,6 +259,13 @@ namespace Aaru.DiscImages return false; } + if(!_isDvd) + { + ErrorMessage = "Cannot write non-long sectors to CD images."; + + return false; + } + CommonTypes.Structs.Track track = _writingTracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector && sectorAddress <= trk.TrackEndSector); @@ -729,7 +743,7 @@ namespace Aaru.DiscImages } else { - (byte minute, byte second, byte frame) msf = LbaToMsf(track.TrackStartSector); + (byte minute, byte second, byte frame) msf = LbaToMsf((ulong)track.Indexes[1]); _trackFlags.TryGetValue((byte)track.TrackSequence, out byte trackControl); if(trackControl == 0 &&