From df8f35a70a0da2a35b255635e889ad8d81e26975 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 2 Jun 2021 20:57:27 +0100 Subject: [PATCH] Add a guard for FAT12 and FAT16 to prevent an exception on invalid FAT chains. --- Aaru.Filesystems/FAT/File.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Aaru.Filesystems/FAT/File.cs b/Aaru.Filesystems/FAT/File.cs index 229a9cb93..0e8f994b3 100644 --- a/Aaru.Filesystems/FAT/File.cs +++ b/Aaru.Filesystems/FAT/File.cs @@ -258,6 +258,9 @@ namespace Aaru.Filesystems while(nextCluster > 0 && nextCluster <= FAT16_FORMATTED) { + if(nextCluster > _fatEntries.Length) + return null; + clusters.Add(nextCluster); nextCluster = _fatEntries[nextCluster]; } @@ -265,6 +268,9 @@ namespace Aaru.Filesystems while(nextCluster > 0 && nextCluster <= FAT12_FORMATTED) { + if(nextCluster > _fatEntries.Length) + return null; + clusters.Add(nextCluster); nextCluster = _fatEntries[nextCluster]; }