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);
+    }
 }
 
 /**