From d6d0392d2f4f6d50bee568462da59fc20f723046 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sat, 30 Apr 2022 20:26:55 +0200 Subject: [PATCH] Fix crash when IL byte code unexpectedly ends in the middle of an operand. --- .../CSharp/RequiredNamespaceCollector.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs b/ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs index 6c4aa4acd..459a71a14 100644 --- a/ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs +++ b/ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs @@ -302,7 +302,15 @@ namespace ICSharpCode.Decompiler.CSharp case OperandType.Sig: case OperandType.Tok: case OperandType.Type: - var handle = MetadataTokenHelpers.EntityHandleOrNil(instructions.ReadInt32()); + EntityHandle handle; + try + { + handle = MetadataTokenHelpers.EntityHandleOrNil(instructions.ReadInt32()); + } + catch (BadImageFormatException) + { + return; + } if (handle.IsNil) break; switch (handle.Kind)