aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tool_cfgable.c107
1 files changed, 67 insertions, 40 deletions
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index a666951ec..c2cfac673 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -27,72 +27,99 @@
#include "memdebug.h" /* keep this as LAST include */
-/* TODO: review that all dinamically allocated fields are free'd */
+/* TODO: review handling of unhandled fields marked below */
void free_config_fields(struct Configurable *config)
{
+ if(config->easy) {
+ curl_easy_cleanup(config->easy);
+ config->easy = NULL;
+ }
+
Curl_safefree(config->random_file);
Curl_safefree(config->egd_file);
- Curl_safefree(config->trace_dump);
- Curl_safefree(config->cipher_list);
- Curl_safefree(config->userpwd);
- Curl_safefree(config->postfields);
- Curl_safefree(config->proxy);
- Curl_safefree(config->proxyuserpwd);
- Curl_safefree(config->noproxy);
+
+ /* config->useragent not handled */
+
Curl_safefree(config->cookie);
+ Curl_safefree(config->cookiejar);
Curl_safefree(config->cookiefile);
- Curl_safefree(config->krblevel);
+
+ Curl_safefree(config->postfields);
+ Curl_safefree(config->referer);
+
Curl_safefree(config->headerfile);
Curl_safefree(config->ftpport);
+ Curl_safefree(config->iface);
+
Curl_safefree(config->range);
- Curl_safefree(config->customrequest);
- Curl_safefree(config->writeout);
- if(config->httppost) {
- curl_formfree(config->httppost);
- config->httppost = NULL;
- }
+ Curl_safefree(config->userpwd);
+ Curl_safefree(config->tls_username);
+ Curl_safefree(config->tls_password);
+ Curl_safefree(config->tls_authtype);
+ Curl_safefree(config->proxyuserpwd);
+ Curl_safefree(config->proxy);
+
+ Curl_safefree(config->noproxy);
+ Curl_safefree(config->mail_from);
+ curl_slist_free_all(config->mail_rcpt);
Curl_safefree(config->netrc_file);
+
+ /* config->url_list not handled */
+ /* config->url_last not handled */
+ /* config->url_get not handled */
+ /* config->url_out not handled */
+
+ Curl_safefree(config->cipher_list);
Curl_safefree(config->cert);
- Curl_safefree(config->cacert);
Curl_safefree(config->cert_type);
+ Curl_safefree(config->cacert);
Curl_safefree(config->capath);
Curl_safefree(config->crlfile);
- Curl_safefree(config->cookiejar);
- Curl_safefree(config->ftp_account);
- Curl_safefree(config->ftp_alternative_to_user);
- Curl_safefree(config->iface);
- Curl_safefree(config->socksproxy);
- Curl_safefree(config->libcurl);
- Curl_safefree(config->key_passwd);
Curl_safefree(config->key);
Curl_safefree(config->key_type);
+ Curl_safefree(config->key_passwd);
Curl_safefree(config->pubkey);
- Curl_safefree(config->referer);
Curl_safefree(config->hostpubmd5);
- Curl_safefree(config->mail_from);
-#ifdef USE_TLS_SRP
- Curl_safefree(config->tls_authtype);
- Curl_safefree(config->tls_username);
- Curl_safefree(config->tls_password);
-#endif
-#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI)
- Curl_safefree(config->socks5_gssapi_service);
-#endif
+ /* config->engine not handled */
- curl_slist_free_all(config->quote); /* checks for config->quote == NULL */
- curl_slist_free_all(config->prequote);
+ Curl_safefree(config->customrequest);
+ Curl_safefree(config->krblevel);
+ Curl_safefree(config->trace_dump);
+
+ /* config->trace_stream not handled */
+
+ Curl_safefree(config->writeout);
+
+ /* config->errors not handled */
+
+ curl_slist_free_all(config->quote);
curl_slist_free_all(config->postquote);
+ curl_slist_free_all(config->prequote);
+
curl_slist_free_all(config->headers);
+
+ if(config->httppost) {
+ curl_formfree(config->httppost);
+ config->httppost = NULL;
+ }
+
+ /* config->last_post not handled */
+
curl_slist_free_all(config->telnet_options);
- curl_slist_free_all(config->mail_rcpt);
curl_slist_free_all(config->resolve);
- if(config->easy) {
- curl_easy_cleanup(config->easy);
- config->easy = NULL;
- }
+ Curl_safefree(config->socksproxy);
+ Curl_safefree(config->socks5_gssapi_service);
+
+ Curl_safefree(config->ftp_account);
+ Curl_safefree(config->ftp_alternative_to_user);
+
+ Curl_safefree(config->libcurl);
+
+ /* config->outs not handled */
+
}