From 83f5f718d2d79054f230cbc2ee85dfa2ef38412a Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Fri, 22 Dec 2017 16:25:39 +0000 Subject: [PATCH] Limit resolve depth --- src/Ben.Demystifier/EnhancedStackTrace.Frames.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Ben.Demystifier/EnhancedStackTrace.Frames.cs b/src/Ben.Demystifier/EnhancedStackTrace.Frames.cs index ba05de8..5b6e1d7 100644 --- a/src/Ben.Demystifier/EnhancedStackTrace.Frames.cs +++ b/src/Ben.Demystifier/EnhancedStackTrace.Frames.cs @@ -291,7 +291,8 @@ namespace System.Diagnostics var candidateConstructors = dt.GetConstructors(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly).Where(m => m.Name == matchName); if (TryResolveSourceMethod(candidateConstructors, kind, matchHint, ref method, ref type, out ordinal)) return true; - while (true) + const int MaxResolveDepth = 10; + for (var i = 0; i < MaxResolveDepth; i++) { dt = dt.DeclaringType; if (dt == null) @@ -316,6 +317,8 @@ namespace System.Diagnostics } } } + + return false; } private static bool TryResolveSourceMethod(IEnumerable candidateMethods, GeneratedNameKind kind, string matchHint, ref MethodBase method, ref Type type, out int? ordinal)