aboutsummaryrefslogtreecommitdiff
path: root/lib/easy.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2011-10-07 20:50:57 +0200
committerYang Tse <yangsita@gmail.com>2011-10-07 20:50:57 +0200
commit17f48fe87979f159e2d8769d678641c60f4c0eed (patch)
tree322c1d34d9c8d0a4d203d127765818f297ac93c7 /lib/easy.c
parentb82bd05354cfa756a013d2bed4ffdc951ce903db (diff)
libcurl: some OOM handling fixes
Diffstat (limited to 'lib/easy.c')
-rw-r--r--lib/easy.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/easy.c b/lib/easy.c
index a18321172..9e06dc23b 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -676,16 +676,15 @@ CURL *curl_easy_duphandle(CURL *incurl)
if(outcurl) {
if(outcurl->state.connc &&
- (outcurl->state.connc->type == CONNCACHE_PRIVATE))
+ (outcurl->state.connc->type == CONNCACHE_PRIVATE)) {
Curl_rm_connc(outcurl->state.connc);
- if(outcurl->state.headerbuff)
- free(outcurl->state.headerbuff);
- if(outcurl->change.cookielist)
- curl_slist_free_all(outcurl->change.cookielist);
- if(outcurl->change.url)
- free(outcurl->change.url);
- if(outcurl->change.referer)
- free(outcurl->change.referer);
+ outcurl->state.connc = NULL;
+ }
+ curl_slist_free_all(outcurl->change.cookielist);
+ outcurl->change.cookielist = NULL;
+ Curl_safefree(outcurl->state.headerbuff);
+ Curl_safefree(outcurl->change.url);
+ Curl_safefree(outcurl->change.referer);
Curl_freeset(outcurl);
free(outcurl);
}