diff --git a/lib/formdata.c b/lib/formdata.c
index 483c9f82e5445c3c45fe60a550c3b191bce33ec1..08ccf4db3095644df359aef91039ec8afef7b530 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -1211,8 +1211,11 @@ CURLcode Curl_getFormData(struct FormData **finalform,
         char *filebasename= NULL;
         if(!file->showfilename) {
           filebasename = strippath(file->contents);
-          if(!filebasename)
+          if(!filebasename) {
+            Curl_formclean(&firstform);
+            free(boundary);
             return CURLE_OUT_OF_MEMORY;
+          }
         }
 
         result = AddFormDataf(&form, &size,