From 5820f874fc738259a66a87ff4a9eedb5ebc96eb6 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 27 Feb 2023 00:59:46 +0200 Subject: [PATCH] Fix infinite loop in autocompletion In some cases, the token used for highlighting autocompletion gets to be empty, resulting in an infinte loop. One such case is searching for `''` (without the backticks). --- src/services/search/services/search.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/services/search/services/search.js b/src/services/search/services/search.js index 3b18c0b33..b9ead869a 100644 --- a/src/services/search/services/search.js +++ b/src/services/search/services/search.js @@ -334,6 +334,11 @@ function highlightSearchResults(searchResults, highlightedTokens) { } for (const token of highlightedTokens) { + if (!token) { + // Avoid empty tokens, which might cause an infinite loop. + continue; + } + for (const result of searchResults) { // Reset token const tokenRegex = new RegExp(utils.escapeRegExp(token), "gi");