QDeclarativeStyledText::parse on empty tag causes assert in QString
authorYann Bodson <yann.bodson@nokia.com>
Tue, 1 Nov 2011 06:55:19 +0000 (16:55 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 1 Nov 2011 22:43:54 +0000 (23:43 +0100)
Task-number: QTBUG-22058
Change-Id: I7141002b751722ab34b378215251562153c4ff46
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
src/declarative/util/qdeclarativestyledtext.cpp

index 872bad6..1c7ca5f 100644 (file)
@@ -234,6 +234,8 @@ bool QDeclarativeStyledTextPrivate::parseTag(const QChar *&ch, const QString &te
     int tagLength = 0;
     while (!ch->isNull()) {
         if (*ch == greaterThan) {
+            if (tagLength == 0)
+                return false;
             QStringRef tag(&textIn, tagStart, tagLength);
             const QChar char0 = tag.at(0);
             if (char0 == QLatin1Char('b')) {
@@ -343,6 +345,8 @@ bool QDeclarativeStyledTextPrivate::parseCloseTag(const QChar *&ch, const QStrin
     int tagLength = 0;
     while (!ch->isNull()) {
         if (*ch == greaterThan) {
+            if (tagLength == 0)
+                return false;
             QStringRef tag(&textIn, tagStart, tagLength);
             const QChar char0 = tag.at(0);
             hasNewLine = false;