summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam M. Brack <wbrack@src.gnome.org>2001-09-23 01:55:08 +0000
committerWilliam M. Brack <wbrack@src.gnome.org>2001-09-23 01:55:08 +0000
commitd28e48ab492dbd8f351514d3a0854e3c24eea4bc (patch)
treeb048ea42f3bd739c205fd74f5f89a3dc55e02398
parentb1d62871db75d927bf3f9a18a27845059a67820c (diff)
downloadlibxml2-d28e48ab492dbd8f351514d3a0854e3c24eea4bc.tar.gz
fix loop in HTMLparser.c
-rw-r--r--ChangeLog5
-rw-r--r--HTMLparser.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 063bb943..a7d9198e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Sep 22 10:00:00 HKT 2001 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: small enhancement to prevent loop on
+ unrecognizable data
+
Fri Sep 21 11:45:53 CEST 2001 Daniel Veillard <daniel@veillard.com>
* parserInternals.c: applying patch from bug #60757 this
diff --git a/HTMLparser.c b/HTMLparser.c
index d13f8c18..cdff8dd4 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -3394,6 +3394,7 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
htmlParserNodeInfo node_info;
xmlChar *oldname;
int depth = ctxt->nameNr;
+ xmlChar *oldptr;
/* Capture start position */
if (ctxt->record_info) {
@@ -3516,7 +3517,9 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
currentNode = xmlStrdup(ctxt->name);
depth = ctxt->nameNr;
while (IS_CHAR(CUR)) {
+ oldptr = ctxt->input->cur;
htmlParseContent(ctxt);
+ if (oldptr==ctxt->input->cur) break;
if (ctxt->nameNr < depth) break;
}