From a142270d2c6332207fc657ef27e6a20eaec67d52 Mon Sep 17 00:00:00 2001 From: Lorenz Haas Date: Wed, 19 Feb 2014 06:48:37 +0100 Subject: [PATCH] Beautifier: Fix possible endless loop Change-Id: Ib2f98c2d761ea9abfd6a42ec30cf8318ee7bd575 Reviewed-by: Orgad Shaneh Reviewed-by: David Schulz --- src/plugins/beautifier/configurationeditor.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/beautifier/configurationeditor.cpp b/src/plugins/beautifier/configurationeditor.cpp index eb3890fdf14..8a75397b5a7 100644 --- a/src/plugins/beautifier/configurationeditor.cpp +++ b/src/plugins/beautifier/configurationeditor.cpp @@ -59,9 +59,12 @@ void ConfigurationSyntaxHighlighter::setKeywords(const QStringList &keywords) if (keywords.isEmpty()) return; + // Check for empty keywords since they can cause an endless loop in highlightBlock(). QStringList pattern; - for (int i = 0, total = keywords.count(); i < total; ++i) - pattern << QRegExp::escape(keywords.at(i)); + foreach (const QString &word, keywords) { + if (!word.isEmpty()) + pattern << QRegExp::escape(word); + } m_expressionKeyword.setPattern(QLatin1String("(?:\\s|^)(") + pattern.join(QLatin1String("|")) + QLatin1String(")(?=\\s|\\:|\\=|\\,|$)"));