From: Gaurav Gupta Date: Mon, 6 Oct 2014 12:24:17 +0800 Subject: Fix Enum check and missing break for https://bugzilla.gnome.org/show_bug.cgi?id=737403 In file xmlreader.c 1. An enum is checked to proper value instead of checking like a boolean. 2. Missing break statement added. --- xmlreader.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xmlreader.c b/xmlreader.c index 00083d0..9620f52 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -1427,7 +1427,7 @@ get_next_node: goto node_found; } #ifdef LIBXML_REGEXP_ENABLED - if ((reader->validate) && (reader->node->type == XML_ELEMENT_NODE)) + if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && (reader->node->type == XML_ELEMENT_NODE)) xmlTextReaderValidatePop(reader); #endif /* LIBXML_REGEXP_ENABLED */ if ((reader->preserves > 0) && @@ -1560,7 +1560,7 @@ node_found: goto get_next_node; } #ifdef LIBXML_REGEXP_ENABLED - if ((reader->validate) && (reader->node != NULL)) { + if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && (reader->node != NULL)) { xmlNodePtr node = reader->node; if ((node->type == XML_ELEMENT_NODE) && @@ -1790,6 +1790,7 @@ xmlTextReaderReadString(xmlTextReaderPtr reader) if (xmlTextReaderDoExpand(reader) != -1) { return xmlTextReaderCollectSiblings(node->children); } + break; case XML_ATTRIBUTE_NODE: TODO break;