From 582a082cd7fa0d582dfd4984f5bff8588e5f28a3 Mon Sep 17 00:00:00 2001 From: Eike Ziller <eike.ziller@nokia.com> Date: Thu, 2 Aug 2012 11:52:28 +0200 Subject: [PATCH] Generic Highlighter: Don't crash with bogus #pop directives. Task-number: QTCREATORBUG-7583 Change-Id: Ie11c0c1d9b900c5d5d92c0e856bae762bb90cb4a Reviewed-by: Leandro Melo <leandro.melo@nokia.com> --- src/plugins/texteditor/generichighlighter/highlighter.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/texteditor/generichighlighter/highlighter.cpp b/src/plugins/texteditor/generichighlighter/highlighter.cpp index e7510200416..587b49665b2 100644 --- a/src/plugins/texteditor/generichighlighter/highlighter.cpp +++ b/src/plugins/texteditor/generichighlighter/highlighter.cpp @@ -323,8 +323,11 @@ void Highlighter::changeContext(const QString &contextName, { if (contextName.startsWith(kPop)) { QStringList list = contextName.split(kHash, QString::SkipEmptyParts); - for (int i = 0; i < list.size(); ++i) + for (int i = 0; i < list.size(); ++i) { + if (m_contexts.isEmpty()) + throw HighlighterException(); m_contexts.pop_back(); + } if (extractObservableState(currentBlockState()) >= PersistentsStart) { // One or more contexts were popped during during a persistent state. -- GitLab