From 3411c604f2a7d226e288d36becb6fb5e286516db Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 12 Jan 2022 11:19:24 +0900 Subject: evas_vg_load_svg: Fix negative attrs length Summary: After finding no attributes but spaces, attrsLength could be negative. This will cause a segfault in parser functions. So, change the position of attrs_length to prevent this. Test Plan: Example SVG ``` ``` Reviewers: Hermet, raster, kimcinoo Reviewed By: Hermet Subscribers: #reviewers, cedric, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12314 --- src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c index 465b499505..8531aedbd3 100644 --- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c +++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c @@ -2276,12 +2276,12 @@ _evas_svg_loader_xml_open_parser(Evas_SVG_Loader *loader, { // find out the tag name starting from content till sz length sz = attrs - content; - attrs_length = length - sz; while ((sz > 0) && (isspace(content[sz - 1]))) sz--; if ((unsigned int)sz >= sizeof(tag_name)) return; strncpy(tag_name, content, sz); tag_name[sz] = '\0'; + attrs_length = length - sz; } if ((method = _find_group_factory(tag_name))) -- cgit v1.2.1