[libxml2] Avoid extra processing of MarkupDecl when EOF



commit ab2b9a93ff19cedde7befbf2fcc48c6e352b6cbe
Author: Hugh Davenport <hugh allthethings co nz>
Date:   Tue Nov 3 20:40:49 2015 +0800

    Avoid extra processing of MarkupDecl when EOF
    
    For https://bugzilla.gnome.org/show_bug.cgi?id=756263
    
    One place where ctxt->instate == XML_PARSER_EOF whic was set up
    by entity detection issues doesn't get noticed, and even overrided

 parser.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/parser.c b/parser.c
index d67b300..134afe7 100644
--- a/parser.c
+++ b/parser.c
@@ -6972,6 +6972,14 @@ xmlParseMarkupDecl(xmlParserCtxtPtr ctxt) {
            xmlParsePI(ctxt);
        }
     }
+
+    /*
+     * detect requirement to exit there and act accordingly
+     * and avoid having instate overriden later on
+     */
+    if (ctxt->instate == XML_PARSER_EOF)
+        return;
+
     /*
      * This is only for internal subset. On external entities,
      * the replacement is done before parsing stage


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