From 64d03e68e033b7a5a5a60b7a6dbadb6481c8138a Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 11 Jan 2019 20:39:17 +0100 Subject: [PATCH] ast DiffTree: don't drill down too deeply to avoid SOE (EA-128679) --- platform/util/src/com/intellij/util/diff/DiffTree.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/util/src/com/intellij/util/diff/DiffTree.java b/platform/util/src/com/intellij/util/diff/DiffTree.java index b8614b8e8771..c28e9c1db2dc 100644 --- a/platform/util/src/com/intellij/util/diff/DiffTree.java +++ b/platform/util/src/com/intellij/util/diff/DiffTree.java @@ -92,6 +92,10 @@ public class DiffTree { @NotNull private CompareResult build(@NotNull OT oldNode, @NotNull NT newNode, int level, @NotNull DiffTreeChangeBuilder consumer) { + if (level > 1000) { + return CompareResult.NOT_EQUAL; + } + if (level == myNewChildrenLists.size()) { myNewChildrenLists.add(new Ref()); myOldChildrenLists.add(new Ref());