Commit 7b9ef792 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen

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/222Reviewed-by: default avatarQt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: default avatarOswald Buddenhagen <oswald.buddenhagen@nokia.com>
parent dad6937e
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment