summaryrefslogtreecommitdiff
path: root/src/svg/qsvgtinydocument.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-28 11:20:27 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-03-04 09:05:30 +0000
commit6f152f87dbbd47acc58458d636ce5d1cc181b8fd (patch)
tree6ddeebfb1078c205cba8a86c315e2e961e1b6b0e /src/svg/qsvgtinydocument.cpp
parentf354d4be9a7a436fb16bd9764a261c930101850c (diff)
downloadqtsvg-6f152f87dbbd47acc58458d636ce5d1cc181b8fd.tar.gz
Fix IRI parsing, and use after free
Make the parsing of IRI references tighter, and avoid freeing styles when inserting a duplicate id. Fixes: QTBUG-74104 Change-Id: I3a12fcf09ce1c55c135a4209817413ed8af75dec Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/svg/qsvgtinydocument.cpp')
-rw-r--r--src/svg/qsvgtinydocument.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/svg/qsvgtinydocument.cpp b/src/svg/qsvgtinydocument.cpp
index 813395f..da464cc 100644
--- a/src/svg/qsvgtinydocument.cpp
+++ b/src/svg/qsvgtinydocument.cpp
@@ -363,7 +363,10 @@ QSvgNode *QSvgTinyDocument::namedNode(const QString &id) const
void QSvgTinyDocument::addNamedStyle(const QString &id, QSvgFillStyleProperty *style)
{
- m_namedStyles.insert(id, style);
+ if (!m_namedStyles.contains(id))
+ m_namedStyles.insert(id, style);
+ else
+ qCWarning(lcSvgHandler) << "Duplicate unique style id:" << id;
}
QSvgFillStyleProperty *QSvgTinyDocument::namedStyle(const QString &id) const