69 lines
3.1 KiB
Diff
69 lines
3.1 KiB
Diff
diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
|
|
--- a/expat/lib/xmlparse.c
|
|
+++ b/expat/lib/xmlparse.c
|
|
@@ -511,6 +511,13 @@ static enum XML_Error doProlog(XML_Parser parser, const ENCODING *enc,
|
|
enum XML_Account account);
|
|
static enum XML_Error processEntity(XML_Parser parser, ENTITY *entity,
|
|
XML_Bool betweenDecl, enum EntityType type);
|
|
+/* BEGIN MOZILLA CHANGE (Bug 1746996 - Ensure that storeRawNames is always called) */
|
|
+static enum XML_Error doContentInternal(XML_Parser parser, int startTagLevel,
|
|
+ const ENCODING *enc, const char *start,
|
|
+ const char *end, const char **endPtr,
|
|
+ XML_Bool haveMore,
|
|
+ enum XML_Account account);
|
|
+/* END MOZILLA CHANGE */
|
|
static enum XML_Error doContent(XML_Parser parser, int startTagLevel,
|
|
const ENCODING *enc, const char *start,
|
|
const char *end, const char **endPtr,
|
|
@@ -3210,10 +3217,14 @@ contentProcessor(XML_Parser parser, const char *start, const char *end,
|
|
parser, parser->m_parentParser ? 1 : 0, parser->m_encoding, start, end,
|
|
endPtr, (XML_Bool)! parser->m_parsingStatus.finalBuffer,
|
|
XML_ACCOUNT_DIRECT);
|
|
+/* BEGIN MOZILLA CHANGE (Bug 1746996 - Ensure that storeRawNames is always called) */
|
|
+#if 0
|
|
if (result == XML_ERROR_NONE) {
|
|
if (! storeRawNames(parser))
|
|
return XML_ERROR_NO_MEMORY;
|
|
}
|
|
+#endif
|
|
+/* END MOZILLA CHANGE */
|
|
return result;
|
|
}
|
|
|
|
@@ -3331,10 +3342,14 @@ externalEntityContentProcessor(XML_Parser parser, const char *start,
|
|
= doContent(parser, 1, parser->m_encoding, start, end, endPtr,
|
|
(XML_Bool)! parser->m_parsingStatus.finalBuffer,
|
|
XML_ACCOUNT_ENTITY_EXPANSION);
|
|
+/* BEGIN MOZILLA CHANGE (Bug 1746996 - Ensure that storeRawNames is always called) */
|
|
+#if 0
|
|
if (result == XML_ERROR_NONE) {
|
|
if (! storeRawNames(parser))
|
|
return XML_ERROR_NO_MEMORY;
|
|
}
|
|
+#endif
|
|
+/* END MOZILLA CHANGE */
|
|
return result;
|
|
}
|
|
|
|
@@ -3342,6 +3357,21 @@ static enum XML_Error
|
|
doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc,
|
|
const char *s, const char *end, const char **nextPtr,
|
|
XML_Bool haveMore, enum XML_Account account) {
|
|
+/* BEGIN MOZILLA CHANGE (Bug 1746996 - Ensure that storeRawNames is always called) */
|
|
+ enum XML_Error result = doContentInternal(parser, startTagLevel, enc, s, end,
|
|
+ nextPtr, haveMore, account);
|
|
+ if (result == XML_ERROR_NONE) {
|
|
+ if (! storeRawNames(parser))
|
|
+ return XML_ERROR_NO_MEMORY;
|
|
+ }
|
|
+ return result;
|
|
+}
|
|
+
|
|
+static enum XML_Error
|
|
+doContentInternal(XML_Parser parser, int startTagLevel, const ENCODING *enc,
|
|
+ const char *s, const char *end, const char **nextPtr,
|
|
+ XML_Bool haveMore, enum XML_Account account) {
|
|
+/* END MOZILLA CHANGE */
|
|
/* save one level of indirection */
|
|
DTD *const dtd = parser->m_dtd;
|
|
|