Fixed a memory leak: xmlSchemaFreeAnnot() was only freeing the first
* xmlschemas.c: Fixed a memory leak: xmlSchemaFreeAnnot() was
only freeing the first annotation in the list.
diff --git a/xmlschemas.c b/xmlschemas.c
index db30dc9..3ee5563 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -2904,7 +2904,17 @@
{
if (annot == NULL)
return;
- xmlFree(annot);
+ if (annot->next == NULL) {
+ xmlFree(annot);
+ } else {
+ xmlSchemaAnnotPtr prev;
+
+ do {
+ prev = annot;
+ annot = annot->next;
+ xmlFree(prev);
+ } while (annot != NULL);
+ }
}
/**