From d60d41fa2afa4761f0faa737bbc387fd427847dd Mon Sep 17 00:00:00 2001 From: alcexhim Date: Wed, 4 Jun 2014 15:17:29 -0400 Subject: [PATCH] Added sanity check to better differentiate between other DAT files --- .../FileSystem/TroikaGames/Arcanum/DATDataFormat.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/TroikaGames/Arcanum/DATDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/TroikaGames/Arcanum/DATDataFormat.cs index f951a362..1ec33ade 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/TroikaGames/Arcanum/DATDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.FileSystem/DataFormats/FileSystem/TroikaGames/Arcanum/DATDataFormat.cs @@ -48,7 +48,16 @@ namespace UniversalEditor.DataFormats.FileSystem.TroikaGames.Arcanum for (uint i = 0; i < FA; i++) { uint fileNameSize = br.ReadUInt32(); - string fileName = br.ReadFixedLengthString(fileNameSize); + string fileName = String.Empty; + + try + { + fileName = br.ReadFixedLengthString(fileNameSize); + } + catch (OverflowException ex) + { + throw new InvalidDataFormatException(); + } fileName = fileName.TrimNull(); uint unknown1 = br.ReadUInt32();