diff options
-rw-r--r-- | src/tool_cfgable.c | 107 |
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 */ + } |