From cea53a02bd436e219b5cc851f77a0d97ff826344 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 5 Nov 2020 11:02:12 +0000 Subject: [PATCH] Fix null reference exception from previous commit. --- Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs index b8fffa3f8..a49aa65c2 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs @@ -832,34 +832,35 @@ namespace Aaru.Core.Devices.Dumping // TODO: Replace for error number } - foreach(Track imgTrack in (_outputPlugin as IWritableOpticalImage).Tracks) - { - try + if((_outputPlugin as IWritableOpticalImage).Tracks != null) + foreach(Track imgTrack in (_outputPlugin as IWritableOpticalImage).Tracks) { - byte[] isrcBytes = - (_outputPlugin as IWritableOpticalImage).ReadSectorTag(imgTrack.TrackSequence, - SectorTagType.CdTrackIsrc); + try + { + byte[] isrcBytes = + (_outputPlugin as IWritableOpticalImage).ReadSectorTag(imgTrack.TrackSequence, + SectorTagType.CdTrackIsrc); - if(isrcBytes != null) - isrcs[(byte)imgTrack.TrackSequence] = Encoding.ASCII.GetString(isrcBytes); + if(isrcBytes != null) + isrcs[(byte)imgTrack.TrackSequence] = Encoding.ASCII.GetString(isrcBytes); + } + catch(Exception) + { + // TODO: Replace for error number + } + + Track trk = tracks.FirstOrDefault(t => t.TrackSequence == imgTrack.TrackSequence); + + if(trk != null) + { + trk.TrackPregap = imgTrack.TrackPregap; + trk.TrackStartSector = imgTrack.TrackStartSector; + trk.TrackEndSector = imgTrack.TrackEndSector; + + foreach(KeyValuePair imgIdx in imgTrack.Indexes) + trk.Indexes[imgIdx.Key] = imgIdx.Value; + } } - catch(Exception) - { - // TODO: Replace for error number - } - - Track trk = tracks.FirstOrDefault(t => t.TrackSequence == imgTrack.TrackSequence); - - if(trk != null) - { - trk.TrackPregap = imgTrack.TrackPregap; - trk.TrackStartSector = imgTrack.TrackStartSector; - trk.TrackEndSector = imgTrack.TrackEndSector; - - foreach(KeyValuePair imgIdx in imgTrack.Indexes) - trk.Indexes[imgIdx.Key] = imgIdx.Value; - } - } // Send track list to output plugin. This may fail if subchannel is set but unsupported. ret = (_outputPlugin as IWritableOpticalImage).SetTracks(tracks.ToList());