summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-05-30 14:25:14 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-05-30 16:54:04 +0200
commit7b9ef7923f9a8d33f118e703695b4e23d57c1c4c (patch)
tree489e0b4791f0d32d784eaf12f4235ceb1f89b33a
parentdad6937e231d677a346fbce2482955a98b520f52 (diff)
downloadqt-creator-7b9ef7923f9a8d33f118e703695b4e23d57c1c4c.tar.gz
fix read beyond eol on missing expansion terminator
now we uniformly increment the read pointer only if we encountered a terminator (which also implies that we were not at non-eol yet). Task-number: QTCREATORBUG-5022 Change-Id: If4a4e7aec7423684297393fa10e50a69773b2048 Reviewed-on: http://codereview.qt.nokia.com/222 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-rw-r--r--src/shared/proparser/profileparser.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/shared/proparser/profileparser.cpp b/src/shared/proparser/profileparser.cpp
index 0050940079..8d923c18d7 100644
--- a/src/shared/proparser/profileparser.cpp
+++ b/src/shared/proparser/profileparser.cpp
@@ -515,7 +515,6 @@ bool ProFileParser::read(ProFile *pro, const QString &in)
goto newWord;
}
if (term) {
- cur++;
checkTerm:
if (c != term) {
parseError(fL1S("Missing %1 terminator [found %2]")
@@ -523,9 +522,9 @@ bool ProFileParser::read(ProFile *pro, const QString &in)
.arg(c ? QString(c) : QString::fromLatin1("end-of-line")));
pro->setOk(false);
m_inError = true;
- if (c)
- cur--;
// Just parse on, as if there was a terminator ...
+ } else {
+ cur++;
}
}
joinToken:
@@ -585,7 +584,7 @@ bool ProFileParser::read(ProFile *pro, const QString &in)
finalizeCall(tokPtr, buf, ptr, theargc);
goto nextItem;
} else if (term == '}') {
- c = (cur == end) ? 0 : *cur++;
+ c = (cur == end) ? 0 : *cur;
goto checkTerm;
} else {
Q_ASSERT(!term);