You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
7 years ago
|
From 6dfc7fd442351269c421a525d91506e43e18208e Mon Sep 17 00:00:00 2001
|
||
|
From: Daniel Veillard <veillard@redhat.com>
|
||
|
Date: Fri, 20 Nov 2015 15:06:02 +0800
|
||
|
Subject: [PATCH] Fix some loop issues embedding NEXT
|
||
|
To: libvir-list@redhat.com
|
||
|
|
||
|
Next can switch the parser back to XML_PARSER_EOF state, we
|
||
|
need to consider those in loops consuming input
|
||
|
|
||
|
Signed-off-by: Daniel Veillard <veillard@redhat.com>
|
||
|
---
|
||
|
parser.c | 6 ++++--
|
||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/parser.c b/parser.c
|
||
|
index 7602498..cc45e17 100644
|
||
|
--- a/parser.c
|
||
|
+++ b/parser.c
|
||
|
@@ -2155,7 +2155,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++;
|
||
|
@@ -2169,7 +2170,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);
|
||
|
}
|
||
|
--
|
||
|
2.5.0
|
||
|
|