From 768151449b386488ac8fe869f48bf2930123d601 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Wed, 29 Jan 2014 08:10:26 +0100 Subject: netrc: Fixed a memory leak in an OOM condition --- lib/url.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/url.c') diff --git a/lib/url.c b/lib/url.c index a870cc5d3..3e621bdee 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4805,13 +4805,17 @@ static CURLcode override_login(struct SessionHandle *data, conn->bits.netrc = FALSE; if(data->set.use_netrc != CURL_NETRC_IGNORED) { - if(Curl_parsenetrc(conn->host.name, - userp, passwdp, - data->set.str[STRING_NETRC_FILE])) { + int ret = Curl_parsenetrc(conn->host.name, + userp, passwdp, + data->set.str[STRING_NETRC_FILE]); + if(ret > 0) { infof(data, "Couldn't find host %s in the " DOT_CHAR "netrc file; using defaults\n", conn->host.name); } + else if(ret < 0 ) { + return CURLE_OUT_OF_MEMORY; + } else { /* set bits.netrc TRUE to remember that we got the name from a .netrc file, so that it is safe to use even if we followed a Location: to a -- cgit v1.2.3