fixing a deallocation problem in xmlRelaxNGParse() in case of errors,
* relaxng.c: fixing a deallocation problem in xmlRelaxNGParse()
in case of errors, should fix bug #338306
Daniel
diff --git a/ChangeLog b/ChangeLog
index 97b14f9..de1ac0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Apr 13 09:31:45 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * relaxng.c: fixing a deallocation problem in xmlRelaxNGParse()
+ in case of errors, should fix bug #338306
+
Thu Apr 6 10:22:17 CEST 2006 Daniel Veillard <daniel@veillard.com>
* doc/xmlcatalog.1 doc/xmlcatalog_man.xml doc/xmllint.1 doc/xmllint.xml:
diff --git a/relaxng.c b/relaxng.c
index 59780c8..45eef13 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -7394,13 +7394,16 @@
if (root == NULL) {
xmlRngPErr(ctxt, (xmlNodePtr) doc,
XML_RNGP_EMPTY, "xmlRelaxNGParse: %s is empty\n",
- ctxt->URL, NULL);
- xmlFreeDoc(doc);
+ (ctxt->URL ? ctxt->URL : "schemas"), NULL);
+
+ xmlFreeDoc(ctxt->document);
+ ctxt->document = NULL;
return (NULL);
}
ret = xmlRelaxNGParseDocument(ctxt, root);
if (ret == NULL) {
- xmlFreeDoc(doc);
+ xmlFreeDoc(ctxt->document);
+ ctxt->document = NULL;
return (NULL);
}