SvgLoader: Prevent underflow when stack.cnt is 0
authorJunsuChoi <jsuya.choi@samsung.com>
Wed, 2 Sep 2020 08:10:50 +0000 (17:10 +0900)
committerHermet Park <chuneon.park@samsung.com>
Wed, 2 Sep 2020 09:26:50 +0000 (18:26 +0900)
If graphic node is directly located in the <svg>(root) node,
it may cause underflow because stack.cnt is 0.

Change-Id: I04b8aac9354cb33a9e7b5d277e6681fbcecce975

src/loaders/svg/tvgSvgLoader.cpp

index d6334f5..093fe47 100644 (file)
@@ -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;