[libxml2] Disallow conditional sections in internal subset
- From: Nick Wellnhofer <nwellnhof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxml2] Disallow conditional sections in internal subset
- Date: Mon, 30 Sep 2019 14:02:45 +0000 (UTC)
commit c2f209c09f383ccfaa2bf8fe9b63882366bf4aec
Author: Nick Wellnhofer <wellnhofer aevum de>
Date: Mon Sep 30 14:13:21 2019 +0200
Disallow conditional sections in internal subset
Conditional sections are only allowed in *external* parameter entities
referenced from the internal subset.
parser.c | 4 ++--
result/errors/759573-2.xml.err | 35 +++++++++++------------------------
result/errors/759573.xml.err | 15 +++++++++++++--
3 files changed, 26 insertions(+), 28 deletions(-)
---
diff --git a/parser.c b/parser.c
index 20297005..4e98a9a8 100644
--- a/parser.c
+++ b/parser.c
@@ -8300,10 +8300,10 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) {
xmlParsePEReference(ctxt);
/*
- * Conditional sections are allowed from entities included
+ * Conditional sections are allowed from external entities included
* by PE References in the internal subset.
*/
- if ((ctxt->inputNr > 1) &&
+ if ((ctxt->inputNr > 1) && (ctxt->input->filename != NULL) &&
(RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
xmlParseConditionalSections(ctxt);
}
diff --git a/result/errors/759573-2.xml.err b/result/errors/759573-2.xml.err
index ecaf18fc..4c454758 100644
--- a/result/errors/759573-2.xml.err
+++ b/result/errors/759573-2.xml.err
@@ -16,33 +16,20 @@ Entity: line 1: parser error : ParsePI: PI xDOCTYPEm space expected
Entity: line 1:
<!ENTITY<?xDOCTYPEm~?>
^
-Entity: line 3: parser error : Space required after '<!ENTITY'
-%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
- ^
-Entity: line 1:
-<!ENTITY<?xDOCTYPEm~?>
- ^
-Entity: line 3: parser error : xmlParseEntityDecl: no name
-%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in
Markup declaration
+
+%xx;�ggKENSMYNT#MENTDŴzz;'>
^
-Entity: line 1:
-<!ENTITY<?xDOCTYPEm~?>
- ^
-Entity: line 3: parser error : ParsePI: PI xDOCTYPEm space expected
-%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+Entity: line 2:
+<![INCLUDE[
+^
+./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in
Markup declaration
+
+%xx;�ggKENSMYNT#MENTDŴzz;'>
^
-Entity: line 1:
-<!ENTITY<?xDOCTYPEm~?>
- ^
-./test/errors/759573-2.xml:6: parser error : Space required after 'ELEMENT'
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
%xx;�ggKENSMYNT#MENTDŴzz;'>
^
-Entity: line 3:
-%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
- ^
-./test/errors/759573-2.xml:6: parser error : Content error in the external subset
+./test/errors/759573-2.xml:6: parser error : Start tag expected, '<' not found
%xx;�ggKENSMYNT#MENTDŴzz;'>
^
-Entity: line 3:
-%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
- ^
diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err
index 2617cad3..55247503 100644
--- a/result/errors/759573.xml.err
+++ b/result/errors/759573.xml.err
@@ -13,9 +13,20 @@ T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
Entity: line 1:
%<![INCLUDE[000%ஸ000%z;
^
-./test/errors/759573.xml:1: parser error : Content error in the external subset
+./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup
declaration
+
T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
^
Entity: line 1:
%<![INCLUDE[000%ஸ000%z;
- ^
+ ^
+./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup
declaration
+
+T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
+ ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
+ ^
+./test/errors/759573.xml:1: parser error : Start tag expected, '<' not found
+T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
+ ^
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]