Use asn1_free_named_data_list() when relevant
diff --git a/library/x509write.c b/library/x509write.c
index f4f3c4d..6435388 100644
--- a/library/x509write.c
+++ b/library/x509write.c
@@ -56,14 +56,8 @@
     int in_tag = 1;
     asn1_named_data *cur;
 
-    // Clear existing chain if present
-    //
-    while( *head != NULL )
-    {
-        cur = *head;
-        *head = cur->next;
-        polarssl_free( cur );
-    }
+    /* Clear existing chain if present */
+    asn1_free_named_data_list( head );
 
     while( c <= end )
     {