mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-04-01 10:50:08 +03:00
entities: Stop counting entities
This was only used in the old version of xmlParserEntityCheck.
This commit is contained in:
parent
a3c8b1805e
commit
ce76ebfd13
11
entities.c
11
entities.c
@ -38,35 +38,35 @@ static xmlEntity xmlEntityLt = {
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
BAD_CAST "<", BAD_CAST "<", 1,
|
||||
XML_INTERNAL_PREDEFINED_ENTITY,
|
||||
NULL, NULL, NULL, NULL, 0, 1, 0, 0
|
||||
NULL, NULL, NULL, NULL, 0, 0, 0
|
||||
};
|
||||
static xmlEntity xmlEntityGt = {
|
||||
NULL, XML_ENTITY_DECL, BAD_CAST "gt",
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
BAD_CAST ">", BAD_CAST ">", 1,
|
||||
XML_INTERNAL_PREDEFINED_ENTITY,
|
||||
NULL, NULL, NULL, NULL, 0, 1, 0, 0
|
||||
NULL, NULL, NULL, NULL, 0, 0, 0
|
||||
};
|
||||
static xmlEntity xmlEntityAmp = {
|
||||
NULL, XML_ENTITY_DECL, BAD_CAST "amp",
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
BAD_CAST "&", BAD_CAST "&", 1,
|
||||
XML_INTERNAL_PREDEFINED_ENTITY,
|
||||
NULL, NULL, NULL, NULL, 0, 1, 0, 0
|
||||
NULL, NULL, NULL, NULL, 0, 0, 0
|
||||
};
|
||||
static xmlEntity xmlEntityQuot = {
|
||||
NULL, XML_ENTITY_DECL, BAD_CAST "quot",
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
BAD_CAST "\"", BAD_CAST "\"", 1,
|
||||
XML_INTERNAL_PREDEFINED_ENTITY,
|
||||
NULL, NULL, NULL, NULL, 0, 1, 0, 0
|
||||
NULL, NULL, NULL, NULL, 0, 0, 0
|
||||
};
|
||||
static xmlEntity xmlEntityApos = {
|
||||
NULL, XML_ENTITY_DECL, BAD_CAST "apos",
|
||||
NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
BAD_CAST "'", BAD_CAST "'", 1,
|
||||
XML_INTERNAL_PREDEFINED_ENTITY,
|
||||
NULL, NULL, NULL, NULL, 0, 1, 0, 0
|
||||
NULL, NULL, NULL, NULL, 0, 0, 0
|
||||
};
|
||||
|
||||
/**
|
||||
@ -163,7 +163,6 @@ xmlCreateEntity(xmlDictPtr dict, const xmlChar *name, int type,
|
||||
}
|
||||
memset(ret, 0, sizeof(xmlEntity));
|
||||
ret->type = XML_ENTITY_DECL;
|
||||
ret->checked = 0;
|
||||
|
||||
/*
|
||||
* fill the structure.
|
||||
|
@ -56,10 +56,6 @@ struct _xmlEntity {
|
||||
struct _xmlEntity *nexte; /* unused */
|
||||
const xmlChar *URI; /* the full URI as computed */
|
||||
int owner; /* does the entity own the childrens */
|
||||
int checked; /* was the entity content checked */
|
||||
/* this is also used to count entities
|
||||
* references done from that entity
|
||||
* and if it contains '<' */
|
||||
int flags; /* various flags */
|
||||
unsigned long expandedSize; /* expanded size */
|
||||
};
|
||||
|
@ -297,7 +297,7 @@ struct _xmlParserCtxt {
|
||||
*/
|
||||
xmlError lastError;
|
||||
xmlParserMode parseMode; /* the parser mode */
|
||||
unsigned long nbentities; /* number of entities references */
|
||||
unsigned long nbentities; /* unused */
|
||||
unsigned long sizeentities; /* size of parsed entities */
|
||||
|
||||
/* for use by HTML non-recursive parser */
|
||||
|
54
parser.c
54
parser.c
@ -2659,8 +2659,6 @@ xmlStringDecodeEntitiesInt(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
|
||||
"String decoding Entity Reference: %.30s\n",
|
||||
str);
|
||||
ent = xmlParseStringEntityRef(ctxt, &str);
|
||||
if (ent != NULL)
|
||||
ctxt->nbentities += ent->checked;
|
||||
if ((ent != NULL) &&
|
||||
(ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) {
|
||||
if (ent->content != NULL) {
|
||||
@ -2712,8 +2710,6 @@ xmlStringDecodeEntitiesInt(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
"String decoding PE Reference: %.30s\n", str);
|
||||
ent = xmlParseStringPEReference(ctxt, &str);
|
||||
if (ent != NULL)
|
||||
ctxt->nbentities += ent->checked;
|
||||
if (ent != NULL) {
|
||||
if (ent->content == NULL) {
|
||||
/*
|
||||
@ -3986,9 +3982,6 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) {
|
||||
}
|
||||
} else {
|
||||
ent = xmlParseEntityRef(ctxt);
|
||||
ctxt->nbentities++;
|
||||
if (ent != NULL)
|
||||
ctxt->nbentities += ent->owner;
|
||||
if ((ent != NULL) &&
|
||||
(ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) {
|
||||
if (len + 10 > buf_size) {
|
||||
@ -4050,7 +4043,6 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) {
|
||||
if ((ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) &&
|
||||
(ent->content != NULL)) {
|
||||
if ((ent->flags & XML_ENT_CHECKED) == 0) {
|
||||
unsigned long oldnbent = ctxt->nbentities;
|
||||
unsigned long oldCopy = ctxt->sizeentcopy;
|
||||
|
||||
ctxt->sizeentcopy = ent->length;
|
||||
@ -4062,7 +4054,6 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) {
|
||||
/* check */ 1);
|
||||
--ctxt->depth;
|
||||
|
||||
ent->checked = ctxt->nbentities - oldnbent + 1;
|
||||
ent->flags |= XML_ENT_CHECKED;
|
||||
ent->expandedSize = ctxt->sizeentcopy;
|
||||
|
||||
@ -7226,7 +7217,6 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
|
||||
if (((ent->flags & XML_ENT_PARSED) == 0) &&
|
||||
((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) ||
|
||||
(ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) {
|
||||
unsigned long oldnbent = ctxt->nbentities;
|
||||
unsigned long oldsizeentcopy = ctxt->sizeentcopy;
|
||||
|
||||
/*
|
||||
@ -7269,11 +7259,6 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
|
||||
|
||||
ent->flags |= XML_ENT_PARSED | XML_ENT_CHECKED;
|
||||
ent->expandedSize = ctxt->sizeentcopy;
|
||||
/*
|
||||
* Store the number of entities needing parsing for this entity
|
||||
* content and do checkings
|
||||
*/
|
||||
ent->checked = ctxt->nbentities - oldnbent + 1;
|
||||
if (ret == XML_ERR_ENTITY_LOOP) {
|
||||
xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
|
||||
xmlHaltParser(ctxt);
|
||||
@ -7336,13 +7321,9 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
|
||||
xmlFreeNodeList(list);
|
||||
list = NULL;
|
||||
}
|
||||
if (ent->checked == 0)
|
||||
ent->checked = 1;
|
||||
|
||||
/* Prevent entity from being parsed and expanded twice (Bug 760367). */
|
||||
was_checked = 0;
|
||||
} else {
|
||||
ctxt->nbentities += ent->checked;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -7620,11 +7601,6 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) {
|
||||
return(ent);
|
||||
}
|
||||
|
||||
/*
|
||||
* Increase the number of entity references parsed
|
||||
*/
|
||||
ctxt->nbentities++;
|
||||
|
||||
/*
|
||||
* Ask first SAX for entity resolution, otherwise try the
|
||||
* entities which may have stored in the parser context.
|
||||
@ -7819,11 +7795,6 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Increase the number of entity references parsed
|
||||
*/
|
||||
ctxt->nbentities++;
|
||||
|
||||
/*
|
||||
* Ask first SAX for entity resolution, otherwise try the
|
||||
* entities which may have stored in the parser context.
|
||||
@ -8001,11 +7972,6 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt)
|
||||
|
||||
NEXT;
|
||||
|
||||
/*
|
||||
* Increase the number of entity references parsed
|
||||
*/
|
||||
ctxt->nbentities++;
|
||||
|
||||
/*
|
||||
* Request the entity from SAX
|
||||
*/
|
||||
@ -8278,11 +8244,6 @@ xmlParseStringPEReference(xmlParserCtxtPtr ctxt, const xmlChar **str) {
|
||||
}
|
||||
ptr++;
|
||||
|
||||
/*
|
||||
* Increase the number of entity references parsed
|
||||
*/
|
||||
ctxt->nbentities++;
|
||||
|
||||
/*
|
||||
* Request the entity from SAX
|
||||
*/
|
||||
@ -12974,13 +12935,6 @@ xmlParseExternalEntityPrivate(xmlDocPtr doc, xmlParserCtxtPtr oldctxt,
|
||||
ret = XML_ERR_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Record in the parent context the number of entities replacement
|
||||
* done when parsing that reference.
|
||||
*/
|
||||
if (oldctxt != NULL)
|
||||
oldctxt->nbentities += ctxt->nbentities;
|
||||
|
||||
/*
|
||||
* Also record the size of the entity parsed
|
||||
*/
|
||||
@ -13248,13 +13202,6 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
|
||||
ctxt->myDoc->last = last;
|
||||
}
|
||||
|
||||
/*
|
||||
* Record in the parent context the number of entities replacement
|
||||
* done when parsing that reference.
|
||||
*/
|
||||
if (oldctxt != NULL)
|
||||
oldctxt->nbentities += ctxt->nbentities;
|
||||
|
||||
/*
|
||||
* Also record the size of the entity parsed
|
||||
*/
|
||||
@ -14701,7 +14648,6 @@ xmlCtxtReset(xmlParserCtxtPtr ctxt)
|
||||
ctxt->depth = 0;
|
||||
ctxt->charset = XML_CHAR_ENCODING_UTF8;
|
||||
ctxt->catalogs = NULL;
|
||||
ctxt->nbentities = 0;
|
||||
ctxt->sizeentities = 0;
|
||||
ctxt->sizeentcopy = 0;
|
||||
xmlInitNodeInfoSeq(&ctxt->node_seq);
|
||||
|
@ -1640,7 +1640,6 @@ xmlInitSAXParserCtxt(xmlParserCtxtPtr ctxt, const xmlSAXHandler *sax,
|
||||
ctxt->depth = 0;
|
||||
ctxt->charset = XML_CHAR_ENCODING_UTF8;
|
||||
ctxt->catalogs = NULL;
|
||||
ctxt->nbentities = 0;
|
||||
ctxt->sizeentities = 0;
|
||||
ctxt->sizeentcopy = 0;
|
||||
ctxt->input_id = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user