summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-03-05 12:52:36 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-03-05 15:03:39 +0100
commit4a88e194e6b243e83703ad83d95e49b2febed99e (patch)
treeaed3bbddd235f13bb59b98c763ab3c37daa385fa
parentb236b0d325174b0663e9193de10054036b43e524 (diff)
downloadqtsvg-4a88e194e6b243e83703ad83d95e49b2febed99e.tar.gz
Improve parsing of "r"
Negative r values are illegal, and zero means empty for circles. Pick-to: 6.1 Change-Id: Icb1d932f35909f71dafe1ee69eb2250eeb1bb2ad Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
-rw-r--r--src/svg/qsvghandler.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
index 3d9297f..e554b47 100644
--- a/src/svg/qsvghandler.cpp
+++ b/src/svg/qsvghandler.cpp
@@ -2560,6 +2560,8 @@ static QSvgNode *createCircleNode(QSvgNode *parent,
qreal ncx = toDouble(cx);
qreal ncy = toDouble(cy);
qreal nr = toDouble(r);
+ if (nr < 0.0)
+ return nullptr;
QRectF rect(ncx-nr, ncy-nr, nr*2, nr*2);
QSvgNode *circle = new QSvgCircle(parent, rect);
@@ -3030,15 +3032,16 @@ static QSvgStyleProperty *createRadialGradientNode(QSvgNode *node,
qreal ncx = 0.5;
qreal ncy = 0.5;
- qreal nr = 0.5;
if (!cx.isEmpty())
ncx = toDouble(cx);
if (!cy.isEmpty())
ncy = toDouble(cy);
+
+ qreal nr = 0.0;
if (!r.isEmpty())
nr = toDouble(r);
- if (nr < 0.5)
- nr = 0.5;
+ if (nr <= 0.0)
+ return nullptr;
qreal nfx = ncx;
if (!fx.isEmpty())