Added generic asn1_free_named_data_list()
diff --git a/include/polarssl/asn1.h b/include/polarssl/asn1.h
index ec8cbfa..86a1bc8 100644
--- a/include/polarssl/asn1.h
+++ b/include/polarssl/asn1.h
@@ -319,6 +319,14 @@
  */
 void asn1_free_named_data( asn1_named_data *entry );
 
+/**
+ * Free all entries in a asn1_named_data list
+ * Head will be set to NULL
+ *
+ * \param head  Pointer to the head of the list of named data entries to free
+ */
+void asn1_free_named_data_list( asn1_named_data **head );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/library/asn1parse.c b/library/asn1parse.c
index f6b271e..9573599 100644
--- a/library/asn1parse.c
+++ b/library/asn1parse.c
@@ -354,6 +354,18 @@
     memset( cur, 0, sizeof( asn1_named_data ) );
 }
 
+void asn1_free_named_data_list( asn1_named_data **head )
+{
+    asn1_named_data *cur;
+
+    while( ( cur = *head ) != NULL )
+    {
+        *head = cur->next;
+        asn1_free_named_data( cur );
+        polarssl_free( cur );
+    }
+}
+
 asn1_named_data *asn1_find_named_data( asn1_named_data *list,
                                        const char *oid, size_t len )
 {