[libxml2] Fix some loop issues embedding NEXT



commit 3bd6ae147e294da6b378379cc87615b8fc111e73
Author: Daniel Veillard <veillard redhat com>
Date:   Fri Nov 20 15:06:02 2015 +0800

    Fix some loop issues embedding NEXT
    
    Next can switch the parser back to XML_PARSER_EOF state, we
    need to consider those in loops consuming input

 parser.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/parser.c b/parser.c
index ab007aa..c7e4574 100644
--- a/parser.c
+++ b/parser.c
@@ -2160,7 +2160,8 @@ xmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
        int cur;
        do {
            cur = CUR;
-           while (IS_BLANK_CH(cur)) { /* CHECKED tstblanks.xml */
+           while ((IS_BLANK_CH(cur) && /* CHECKED tstblanks.xml */
+                  (ctxt->instate != XML_PARSER_EOF))) {
                NEXT;
                cur = CUR;
                res++;
@@ -2174,7 +2175,8 @@ xmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
             * Need to handle support of entities branching here
             */
            if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);
-       } while (IS_BLANK(cur)); /* CHECKED tstblanks.xml */
+       } while ((IS_BLANK(cur)) && /* CHECKED tstblanks.xml */
+                (ctxt->instate != XML_PARSER_EOF));
     }
     return(res);
 }


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