From c15103e03352aae5c67fc359ce59f3b5e0834921 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 2 Sep 2020 17:10:50 +0900 Subject: [PATCH] SvgLoader: Prevent underflow when stack.cnt is 0 If graphic node is directly located in the (root) node, it may cause underflow because stack.cnt is 0. --- src/loaders/svg/tvgSvgLoader.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index d6334f52..093fe472 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1963,7 +1963,8 @@ static void _svgLoaderParserXmlOpen(SvgLoaderData* loader, const char* content, loader->stack.push(node); } } else if ((method = _findGraphicsFactory(tagName))) { - parent = loader->stack.list[loader->stack.cnt - 1]; + if (loader->stack.cnt > 0) parent = loader->stack.list[loader->stack.cnt - 1]; + else parent = loader->doc; node = method(loader, parent, attrs, attrsLength); } else if ((gradientMethod = _findGradientFactory(tagName))) { SvgStyleGradient* gradient;