From 7b9ef7923f9a8d33f118e703695b4e23d57c1c4c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 30 May 2011 14:25:14 +0200 Subject: 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 Reviewed-by: Oswald Buddenhagen --- src/shared/proparser/profileparser.cpp | 7 +++---- 1 file 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); -- cgit v1.2.1