summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2015-02-23 11:17:35 +0800
committerDaniel Veillard <veillard@redhat.com>2015-02-23 11:17:35 +0800
commita7dfab7411cbf545f359dd3157e5df1eb0e7ce31 (patch)
treecbd1c98784fb82c867e8d486164d66832e645d33
parentfb8e9e212fcad1b48638fb6fa27104e1d0c8853b (diff)
downloadlibxml2-a7dfab7411cbf545f359dd3157e5df1eb0e7ce31.tar.gz
Stop parsing on entities boundaries errorsCVE-2015-7941_1
For https://bugzilla.gnome.org/show_bug.cgi?id=744980 There are times, like on unterminated entities that it's preferable to stop parsing, even if that means less error reporting. Entities are feeding the parser on further processing, and if they are ill defined then it's possible to get the parser to bug. Also do the same on Conditional Sections if the input is broken, as the structure of the document can't be guessed.
-rw-r--r--parser.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/parser.c b/parser.c
index a8d1b673..bbe97eb5 100644
--- a/parser.c
+++ b/parser.c
@@ -5658,6 +5658,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
if (RAW != '>') {
xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED,
"xmlParseEntityDecl: entity %s not terminated\n", name);
+ xmlStopParser(ctxt);
} else {
if (input != ctxt->input) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,