diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-12-11 11:16:12 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-12-12 09:23:45 +0100 |
commit | dc4900eea7317c67116fd5e6cd31863775da88ed (patch) | |
tree | 707129b9295c37cd82ca6a201db4029df673b590 /src | |
parent | 5a1b0f4c5bcc9c5266b28ecc06e6bd7217276a85 (diff) | |
download | curl-dc4900eea7317c67116fd5e6cd31863775da88ed.tar.gz |
curl: improved cleanup in upload error path
Memory leak found by torture test 58
Closes #4705
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_operhlp.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/tool_operhlp.c b/src/tool_operhlp.c index 543bf4302..8a9b7c9e8 100644 --- a/src/tool_operhlp.c +++ b/src/tool_operhlp.c @@ -115,16 +115,17 @@ char *add_file_name_to_url(char *url, const char *filename) urlbuffer = aprintf("%s/%s", url, encfile); curl_free(encfile); - Curl_safefree(url); - if(!urlbuffer) - return NULL; + if(!urlbuffer) { + url = NULL; + goto end; + } + Curl_safefree(url); url = urlbuffer; /* use our new URL instead! */ } - else - Curl_safefree(url); } + end: curl_easy_cleanup(curl); return url; } |