summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2022-01-05 09:48:22 +0100
committerEirik Aavitsland <eirik.aavitsland@qt.io>2022-01-05 13:15:57 +0100
commit1749388cdc765fca4206aaf0f84ac9b0877dfc9a (patch)
tree874ba5f7044381fd33a95c4f91034ec0f40ce826
parent6d8aecdb008ef6eb6fd1c6db82d91572ca2af7de (diff)
downloadqtsvg-1749388cdc765fca4206aaf0f84ac9b0877dfc9a.tar.gz
Unconditionally stop parsing after the svg end tag
A QSvghandler may be created either with an external QXmlStreamReader object, or with a bytearray/iodevice, in which case it will create its own stream reader. The check to end parisng at the </svg> tag was active only in the first case. This could result in different behavior when reading an svg image from file vs. reading it from a bytearray or resource. Fixes: QTBUG-99407 Pick-to: 6.3 6.2 5.15 Change-Id: I187b39256f2b16ea952a3ae1b77c067ff96e4155 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Robert Löhning <robert.loehning@qt.io>
-rw-r--r--src/svg/qsvghandler.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
index f520c3f..16b5319 100644
--- a/src/svg/qsvghandler.cpp
+++ b/src/svg/qsvghandler.cpp
@@ -3684,9 +3684,7 @@ void QSvgHandler::parse()
case QXmlStreamReader::EndElement:
endElement(xml->name());
++remainingUnfinishedElements;
- // if we are using somebody else's qxmlstreamreader
- // we should not read until the end of the stream
- done = !m_ownsReader && (xml->name() == QLatin1String("svg"));
+ done = (xml->name() == QLatin1String("svg"));
break;
case QXmlStreamReader::Characters:
characters(xml->text());