curl\_formfree(3) Library Functions Manual curl\_formfree(3)

# [NAME](#NAME)

curl\_formfree - free a previously build multipart form post chain

# [SYNOPSIS](#SYNOPSIS)

```
#include <curl/curl.h>
void curl_formfree(struct curl_httppost *form);
```

# [DESCRIPTION](#DESCRIPTION)

This function is deprecated. Do not use. See [*curl\_mime\_init(3)*](/man/os/curl/curl_mime_init.3) instead.

curl\_formfree() is used to clean up data previously built/appended with [*curl\_formadd(3)*](/man/os/curl/curl_formadd.3). This must be called when the data has been used, which typically means after [*curl\_easy\_perform(3)*](/man/os/curl/curl_easy_perform.3) has been called.

The pointer to free is the same pointer you passed to the [*CURLOPT\_HTTPPOST(3)*](/man/os/curl/CURLOPT_HTTPPOST.3) option, which is the *firstitem* pointer from the [*curl\_formadd(3)*](/man/os/curl/curl_formadd.3) invoke(s).

**form** is the pointer as returned from a previous call to [*curl\_formadd(3)*](/man/os/curl/curl_formadd.3) and may be NULL.

Passing in a NULL pointer in *form* makes this function return immediately with no action.

# [PROTOCOLS](#PROTOCOLS)

This functionality affects http only

# [EXAMPLE](#EXAMPLE)

```
int main(void)
{


  CURL *curl = curl_easy_init();


  if(curl) {


    struct curl_httppost *formpost;


    struct curl_httppost *lastptr;


    /* Fill in a file upload field */


    curl_formadd(&formpost,


                 &lastptr,


                 CURLFORM_COPYNAME, "file",


                 CURLFORM_FILE, "nice-image.jpg",


                 CURLFORM_END);


    curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);


    curl_easy_perform(curl);


    /* then cleanup the formpost chain */


    curl_formfree(formpost);


  }
}
```

# [DEPRECATED](#DEPRECATED)

Deprecated in 7.56.0.

# [AVAILABILITY](#AVAILABILITY)

Added in curl 7.1

# [RETURN VALUE](#RETURN_VALUE)

None

# [SEE ALSO](#SEE_ALSO)

[**curl\_formadd**(3)](/man/os/curl/curl_formadd.3), [**curl\_mime\_free**(3)](/man/os/curl/curl_mime_free.3), [**curl\_mime\_init**(3)](/man/os/curl/curl_mime_init.3)

2026-09-24 libcurl

---

Document: curl_formfree(3) from curl 8.22.0-r3 (Chainguard OS)
Source: https://github.com/curl/curl.git
