diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2022-01-05 09:48:22 +0100 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2022-01-05 13:15:57 +0100 |
commit | 1749388cdc765fca4206aaf0f84ac9b0877dfc9a (patch) | |
tree | 874ba5f7044381fd33a95c4f91034ec0f40ce826 | |
parent | 6d8aecdb008ef6eb6fd1c6db82d91572ca2af7de (diff) | |
download | qtsvg-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.cpp | 4 |
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()); |