diff options
author | Yang Tse <yangsita@gmail.com> | 2011-10-07 20:50:57 +0200 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2011-10-07 20:50:57 +0200 |
commit | 17f48fe87979f159e2d8769d678641c60f4c0eed (patch) | |
tree | 322c1d34d9c8d0a4d203d127765818f297ac93c7 /lib/easy.c | |
parent | b82bd05354cfa756a013d2bed4ffdc951ce903db (diff) |
libcurl: some OOM handling fixes
Diffstat (limited to 'lib/easy.c')
-rw-r--r-- | lib/easy.c | 17 |
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); } |