mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-16 07:21:58 +03:00
Fix leak on SAX1, xmllint --sax1 option and debug
* SAX2.c: don't leak in xmlCheckDefaultedAttributes for standalone checking * xmllint.c: fix xmllint --sax1 to actually use XML_PARSE_SAX1 * debugXML.c: don't raise an error if markup wasn't allocated from dictionary if document was parsed with option disabling it
This commit is contained in:
1
SAX2.c
1
SAX2.c
@ -1446,6 +1446,7 @@ process_external_subset:
|
||||
(const char *)fulln,
|
||||
(const char *)attr->elem);
|
||||
}
|
||||
xmlFree(fulln);
|
||||
}
|
||||
attr = attr->nexth;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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"))) {
|
||||
|
Reference in New Issue
Block a user