From abb10afc8840ea89e6873c7bf5c43a37a072b035 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Sun, 21 Apr 2024 20:36:09 +0200 Subject: [PATCH] svg_loader: correct polygon's points loading Only an even number of correctly read points defining a polygon should be loaded and passed on for rendering. Any remaining points should be ignored. --- src/loaders/svg/tvgSvgLoader.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 2ae82d05..a88408ac 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1724,8 +1724,11 @@ static SvgNode* _createEllipseNode(SvgLoaderData* loader, SvgNode* parent, const static bool _attrParsePolygonPoints(const char* str, SvgPolygonNode* polygon) { - float num; - while (_parseNumber(&str, nullptr, &num)) polygon->pts.push(num); + float num_x, num_y; + while (_parseNumber(&str, nullptr, &num_x) && _parseNumber(&str, nullptr, &num_y)) { + polygon->pts.push(num_x); + polygon->pts.push(num_y); + } return true; }