From c0936824d4d45c4cdbaef180b21f87a0ea824120 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Fri, 17 Nov 2000 14:06:24 +0000
Subject: [PATCH] added curl_formfree()

---
 lib/formdata.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/lib/formdata.c b/lib/formdata.c
index 1e15f3ce41..cee0b0b0ea 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -382,8 +382,8 @@ char *MakeFormBoundary(void)
 
   return retstring;
 }
- 
 
+/* Used from http.c */ 
 void FormFree(struct FormData *form)
 {
   struct FormData *next;
@@ -391,6 +391,28 @@ void FormFree(struct FormData *form)
     next=form->next;  /* the following form line */
     free(form->line); /* free the line */
     free(form);       /* free the struct */
+  
+  } while((form=next)); /* continue */
+}
+
+/* external function to free up a whole form post chain */
+void curl_formfree(struct HttpPost *form)
+{
+  struct HttpPost *next;
+  do {
+    next=form->next;  /* the following form line */
+
+    /* recurse to sub-contents */
+    if(form->more)
+      curl_formfree(form->more);
+
+    if(form->name)
+      free(form->name); /* free the name */
+    if(form->contents)
+      free(form->contents); /* free the contents */
+    if(form->contenttype)
+      free(form->contenttype); /* free the content type */
+    free(form);       /* free the struct */
 
   } while((form=next)); /* continue */
 }
-- 
GitLab