mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-14 12:04:29 +00:00
svg_loader XmlParser: Fix check the end of string
While skipping the string, check the end of the string first. Prevents an invalid read when parser really get to the end of the string.
This commit is contained in:
parent
24cebf5cc5
commit
b791924983
1 changed files with 2 additions and 2 deletions
|
@ -142,7 +142,7 @@ static const char* _simpleXmlUnskipWhiteSpace(const char* itr, const char* itrSt
|
||||||
static const char* _simpleXmlSkipXmlEntities(const char* itr, const char* itrEnd)
|
static const char* _simpleXmlSkipXmlEntities(const char* itr, const char* itrEnd)
|
||||||
{
|
{
|
||||||
auto p = itr;
|
auto p = itr;
|
||||||
while (*itr == '&' && itr < itrEnd) {
|
while (itr < itrEnd && *itr == '&') {
|
||||||
for (int i = 0; i < NUMBER_OF_XML_ENTITIES; ++i) {
|
for (int i = 0; i < NUMBER_OF_XML_ENTITIES; ++i) {
|
||||||
if (strncmp(itr, xmlEntity[i], xmlEntityLength[i]) == 0) {
|
if (strncmp(itr, xmlEntity[i], xmlEntityLength[i]) == 0) {
|
||||||
itr += xmlEntityLength[i];
|
itr += xmlEntityLength[i];
|
||||||
|
@ -159,7 +159,7 @@ static const char* _simpleXmlSkipXmlEntities(const char* itr, const char* itrEnd
|
||||||
static const char* _simpleXmlUnskipXmlEntities(const char* itr, const char* itrStart)
|
static const char* _simpleXmlUnskipXmlEntities(const char* itr, const char* itrStart)
|
||||||
{
|
{
|
||||||
auto p = itr;
|
auto p = itr;
|
||||||
while (*(itr - 1) == ';' && itr > itrStart) {
|
while (itr > itrStart && *(itr - 1) == ';') {
|
||||||
for (int i = 0; i < NUMBER_OF_XML_ENTITIES; ++i) {
|
for (int i = 0; i < NUMBER_OF_XML_ENTITIES; ++i) {
|
||||||
if (itr - xmlEntityLength[i] > itrStart &&
|
if (itr - xmlEntityLength[i] > itrStart &&
|
||||||
strncmp(itr - xmlEntityLength[i], xmlEntity[i], xmlEntityLength[i]) == 0) {
|
strncmp(itr - xmlEntityLength[i], xmlEntity[i], xmlEntityLength[i]) == 0) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue