From 85d1d21b3523cbe2812f5d79bd02517bc9a8473f Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Tue, 13 Aug 2019 12:27:08 +0200 Subject: [PATCH] Fix possible NRE in DynamicCallSiteTransform.ExtractArgumentInfo. --- .../IL/Transforms/DynamicCallSiteTransform.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs index 8d4a8bf0f..8d77cf103 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs @@ -500,7 +500,10 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; int i = 0; callSiteInfo.ArgumentInfos = new CSharpArgumentInfo[numberOfArguments]; - var compileTimeTypes = callSiteInfo.DelegateType.GetDelegateInvokeMethod().Parameters.SelectReadOnlyArray(p => p.Type); + IMethod invokeMethod = callSiteInfo.DelegateType.GetDelegateInvokeMethod(); + if (invokeMethod == null) + return false; + var compileTimeTypes = invokeMethod.Parameters.SelectReadOnlyArray(p => p.Type); foreach (var (_, arg) in arguments) { if (!(arg is Call createCall)) return false;