From 55ba302a9dc15d4476cff7c95eb68ccce2d42cf3 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 3 Feb 2019 15:42:27 +0000 Subject: [PATCH] Fix crash in partitions enumeration. --- .idea/.idea.DiscImageChef/.idea/contentModel.xml | 2 +- DiscImageChef.Core/Partitions.cs | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.idea/.idea.DiscImageChef/.idea/contentModel.xml b/.idea/.idea.DiscImageChef/.idea/contentModel.xml index ec75100f7..da6491e77 100644 --- a/.idea/.idea.DiscImageChef/.idea/contentModel.xml +++ b/.idea/.idea.DiscImageChef/.idea/contentModel.xml @@ -4,7 +4,7 @@ - + diff --git a/DiscImageChef.Core/Partitions.cs b/DiscImageChef.Core/Partitions.cs index 763b6ab01..a40bf5cdb 100644 --- a/DiscImageChef.Core/Partitions.cs +++ b/DiscImageChef.Core/Partitions.cs @@ -57,7 +57,7 @@ namespace DiscImageChef.Core List checkedLocations = new List(); // Getting all partitions from device (e.g. tracks) - if(image is IPartitionableMediaImage partitionableImage) + if(image is IPartitionableMediaImage partitionableImage && partitionableImage.Partitions != null) foreach(Partition imagePartition in partitionableImage.Partitions) { foreach(IPartition partitionPlugin in plugins.PartPluginsList.Values) @@ -137,9 +137,11 @@ namespace DiscImageChef.Core List startLocations = childPartitions.Select(detectedPartition => detectedPartition.Start).ToList(); - childPartitions.AddRange(partitionableImage.Partitions.Where(imagePartition => - !startLocations.Contains(imagePartition - .Start))); + if(partitionableImage.Partitions != null) + childPartitions.AddRange(partitionableImage.Partitions.Where(imagePartition => + !startLocations + .Contains(imagePartition + .Start))); } Partition[] childArray = childPartitions