[libxml2] Copy some XMLReader option flags to parser context



commit 5c7e0a9a4608ac442e727f6e479cf2a6dea368ec
Author: Nick Wellnhofer <wellnhofer aevum de>
Date:   Tue Feb 11 16:29:30 2020 +0100

    Copy some XMLReader option flags to parser context
    
    The parser context stores some options both in the "options" bits and
    extra members like "validate" or "replaceEntities". Which of these
    are actually read is inconsistent, so make sure to also update the
    bit field.

 xmlreader.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/xmlreader.c b/xmlreader.c
index f3891e43..e336bc71 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -3848,16 +3848,20 @@ xmlTextReaderSetParserProp(xmlTextReaderPtr reader, int prop, int value) {
            return(0);
         case XML_PARSER_VALIDATE:
            if (value != 0) {
+                ctxt->options |= XML_PARSE_DTDVALID;
                ctxt->validate = 1;
                reader->validate = XML_TEXTREADER_VALIDATE_DTD;
            } else {
+                ctxt->options &= ~XML_PARSE_DTDVALID;
                ctxt->validate = 0;
            }
            return(0);
         case XML_PARSER_SUBST_ENTITIES:
            if (value != 0) {
+                ctxt->options |= XML_PARSE_NOENT;
                ctxt->replaceEntities = 1;
            } else {
+                ctxt->options &= ~XML_PARSE_NOENT;
                ctxt->replaceEntities = 0;
            }
            return(0);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]