fix memory leak in issue 1054
diff --git a/xmlwriter.c b/xmlwriter.c index 57772f0..607d7ca 100644 --- a/xmlwriter.c +++ b/xmlwriter.c
@@ -1801,6 +1801,7 @@ if (p == 0) { xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, "xmlTextWriterStartAttributeNS : out of memory!\n"); + xmlFree(buf); return -1; } @@ -1809,12 +1810,20 @@ if (p->uri == 0) { xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, "xmlTextWriterStartAttributeNS : out of memory!\n"); + xmlFree(p->prefix); xmlFree(p); return -1; } p->elem = xmlListFront(writer->nodes); - xmlListPushFront(writer->nsstack, p); + if (xmlListPushFront(writer->nsstack, p) == 0) { + xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, + "xmlTextWriterStartAttributeNS : out of memory!\n"); + xmlFree(p->uri); + xmlFree(p->prefix); + xmlFree(p); + return -1; + } } }