aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SAX2.c1
-rw-r--r--debugXML.c4
-rw-r--r--xmllint.c7
3 files changed, 8 insertions, 4 deletions
diff --git a/SAX2.c b/SAX2.c
index 8dc1d582..e5d6eb50 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -1446,6 +1446,7 @@ process_external_subset:
(const char *)fulln,
(const char *)attr->elem);
}
+ xmlFree(fulln);
}
attr = attr->nexth;
}
diff --git a/debugXML.c b/debugXML.c
index b56651b0..76134cca 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -259,7 +259,9 @@ xmlCtxtCheckName(xmlDebugCtxtPtr ctxt, const xmlChar * name)
"Name is not an NCName '%s'", (const char *) name);
}
if ((ctxt->dict != NULL) &&
- (!xmlDictOwns(ctxt->dict, name))) {
+ (!xmlDictOwns(ctxt->dict, name)) &&
+ ((ctxt->doc == NULL) ||
+ ((ctxt->doc->parseFlags & (XML_PARSE_SAX1 | XML_PARSE_NODICT)) == 0))) {
xmlDebugErr3(ctxt, XML_CHECK_OUTSIDE_DICT,
"Name is not from the document dictionnary '%s'",
(const char *) name);
diff --git a/xmllint.c b/xmllint.c
index a668570e..c324ef30 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -3221,16 +3221,17 @@ main(int argc, char **argv) {
#ifdef LIBXML_SAX1_ENABLED
else if ((!strcmp(argv[i], "-sax1")) ||
(!strcmp(argv[i], "--sax1"))) {
- sax1++;
+ sax1++;
+ options |= XML_PARSE_SAX1;
}
#endif /* LIBXML_SAX1_ENABLED */
else if ((!strcmp(argv[i], "-sax")) ||
(!strcmp(argv[i], "--sax"))) {
- sax++;
+ sax++;
}
else if ((!strcmp(argv[i], "-chkregister")) ||
(!strcmp(argv[i], "--chkregister"))) {
- chkregister++;
+ chkregister++;
#ifdef LIBXML_SCHEMAS_ENABLED
} else if ((!strcmp(argv[i], "-relaxng")) ||
(!strcmp(argv[i], "--relaxng"))) {