summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-12-11 11:16:12 +0100
committerDaniel Stenberg <daniel@haxx.se>2019-12-12 09:23:45 +0100
commitdc4900eea7317c67116fd5e6cd31863775da88ed (patch)
tree707129b9295c37cd82ca6a201db4029df673b590
parent5a1b0f4c5bcc9c5266b28ecc06e6bd7217276a85 (diff)
downloadcurl-dc4900eea7317c67116fd5e6cd31863775da88ed.tar.gz
curl: improved cleanup in upload error path
Memory leak found by torture test 58 Closes #4705
-rw-r--r--src/tool_operhlp.c11
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;
}