diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-10-01 18:55:15 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-10-06 10:08:53 +0200 |
commit | 3167c1374bb918033b5b4a5b54e0d0608698eeb0 (patch) | |
tree | b962f756617b32e93b37e371166b97bc5a05b7a7 /src/svg/qsvgstyle.cpp | |
parent | 56440366c661babc6316d9491a82ae1dfe6308f9 (diff) | |
download | qtsvg-3167c1374bb918033b5b4a5b54e0d0608698eeb0.tar.gz |
fix crash on malformed SVG5.3
In a gradient that references itself via xlink:href we encountered
an infinite recursion, and eventually a stack overflow.
Now we print a warning and ignore the invalid link.
Task-number: QTBUG-35387
Change-Id: Id72800eaa267d015a471df284245861ed8bc94cd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/svg/qsvgstyle.cpp')
-rw-r--r-- | src/svg/qsvgstyle.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/svg/qsvgstyle.cpp b/src/svg/qsvgstyle.cpp index 4385291..662692b 100644 --- a/src/svg/qsvgstyle.cpp +++ b/src/svg/qsvgstyle.cpp @@ -937,7 +937,7 @@ void QSvgGradientStyle::resolveStops() { if (!m_link.isEmpty() && m_doc) { QSvgStyleProperty *prop = m_doc->styleProperty(m_link); - if (prop) { + if (prop && prop != this) { if (prop->type() == QSvgStyleProperty::GRADIENT) { QSvgGradientStyle *st = static_cast<QSvgGradientStyle*>(prop); |