From ae5673658e61ecf9390b3d7e4b60d0f9c8465396 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Mon, 7 Jun 2021 00:14:37 +0200 Subject: [PATCH] svg_loader: initializing uninitialized variables The 'loader->svgParse->global' variable was uninitialized when no viewBox attribute was set. If gradient was applied, the division by zero occured and no gradient was drawn. --- src/loaders/svg/tvgSvgLoader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 89c0c619..ccb52420 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1069,9 +1069,15 @@ static SvgNode* _createSvgNode(SvgLoaderData* loader, SvgNode* parent, const cha if (!loader->svgParse->node) return nullptr; SvgDocNode* doc = &(loader->svgParse->node->node.doc); + loader->svgParse->global.w = 0; + loader->svgParse->global.h = 0; + doc->preserveAspect = true; simpleXmlParseAttributes(buf, bufLength, _attrParseSvgNode, loader); + if (loader->svgParse->global.w == 0) loader->svgParse->global.w = loader->svgParse->node->node.doc.w; + if (loader->svgParse->global.h == 0) loader->svgParse->global.h = loader->svgParse->node->node.doc.h; + return loader->svgParse->node; }