From 2726eb8baa72e2488a9858889b82bbf7c6017ab9 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Mon, 8 Jan 2024 17:51:52 +0900 Subject: [PATCH] loader/svg: Skip check for quotes inside quotes Single or double quotation marks that occur before closing the quotation mark are ignored. --- src/loaders/svg/tvgXmlParser.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/loaders/svg/tvgXmlParser.cpp b/src/loaders/svg/tvgXmlParser.cpp index aec30d23..6530d522 100644 --- a/src/loaders/svg/tvgXmlParser.cpp +++ b/src/loaders/svg/tvgXmlParser.cpp @@ -171,10 +171,11 @@ static const char* _simpleXmlFindStartTag(const char* itr, const char* itrEnd) static const char* _simpleXmlFindEndTag(const char* itr, const char* itrEnd) { - bool insideQuote = false; + bool insideQuote[2] = {false, false}; // 0: ", 1: ' for (; itr < itrEnd; itr++) { - if (*itr == '"') insideQuote = !insideQuote; - if (!insideQuote) { + if (*itr == '"' && !insideQuote[1]) insideQuote[0] = !insideQuote[0]; + if (*itr == '\'' && !insideQuote[0]) insideQuote[1] = !insideQuote[1]; + if (!insideQuote[0] && !insideQuote[1]) { if ((*itr == '>') || (*itr == '<')) return itr; }