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 )
{