From fb585ed99086e72234a1bab62e333f47e987058b Mon Sep 17 00:00:00 2001 From: Chris Fournier Date: Thu, 27 Apr 2023 12:57:33 -0400 Subject: [PATCH] Add fix for LUCENE-10181 --- .../lucene/util/graph/GraphTokenStreamFiniteStrings.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lucene/core/src/java/org/apache/lucene/util/graph/GraphTokenStreamFiniteStrings.java b/lucene/core/src/java/org/apache/lucene/util/graph/GraphTokenStreamFiniteStrings.java index 6711dfb6230f..3ea862c53013 100644 --- a/lucene/core/src/java/org/apache/lucene/util/graph/GraphTokenStreamFiniteStrings.java +++ b/lucene/core/src/java/org/apache/lucene/util/graph/GraphTokenStreamFiniteStrings.java @@ -46,6 +46,7 @@ */ public final class GraphTokenStreamFiniteStrings { + private static final int MAX_RECURSION_DEPTH = 1024; private AttributeSource[] tokens = new AttributeSource[4]; private final Automaton det; private final Transition transition = new Transition(); @@ -269,7 +270,7 @@ private static void articulationPointsRecurse( int numT = a.initTransition(state, t); for (int i = 0; i < numT; i++) { a.getNextTransition(t); - if (visited.get(t.dest) == false) { + if (visited.get(t.dest) == false && d < MAX_RECURSION_DEPTH) { parent[t.dest] = state; articulationPointsRecurse(a, t.dest, d + 1, depth, low, parent, visited, points); childCount++;