diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-05-30 14:25:14 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-05-30 16:54:04 +0200 |
commit | 7b9ef7923f9a8d33f118e703695b4e23d57c1c4c (patch) | |
tree | 489e0b4791f0d32d784eaf12f4235ceb1f89b33a | |
parent | dad6937e231d677a346fbce2482955a98b520f52 (diff) |
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.cpp | 7 |
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); |