aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2017-02-25 21:36:39 +0100
committerDan Fandrich <dan@coneharvesters.com>2017-02-25 21:36:39 +0100
commitce9ba3ba1057725fe5f485de01294182841c2132 (patch)
tree47eaa8532ebcf3be163d32ecb2b506458f9948bf /lib/url.c
parentc6ddb606d8a3fdbe89763f7299e7f43cf6581567 (diff)
proxy: fixed a memory leak on OOM
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/url.c b/lib/url.c
index 38b9552f7..b2dac8bcb 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -5118,15 +5118,19 @@ static CURLcode parse_proxy(struct Curl_easy *data,
with reserved characters like ':' in them. */
Curl_safefree(proxyinfo->user);
proxyinfo->user = curl_easy_unescape(data, proxyuser, 0, NULL);
+ Curl_safefree(proxyuser);
- if(!proxyinfo->user)
+ if(!proxyinfo->user) {
+ Curl_safefree(proxypasswd);
return CURLE_OUT_OF_MEMORY;
+ }
Curl_safefree(proxyinfo->passwd);
if(proxypasswd && strlen(proxypasswd) < MAX_CURL_PASSWORD_LENGTH)
proxyinfo->passwd = curl_easy_unescape(data, proxypasswd, 0, NULL);
else
proxyinfo->passwd = strdup("");
+ Curl_safefree(proxypasswd);
if(!proxyinfo->passwd)
return CURLE_OUT_OF_MEMORY;