1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

Fix memory leak.

This commit is contained in:
Tim Ruehsen 2012-04-21 12:19:25 +02:00 committed by Giuseppe Scrivano
parent f1d4aeaffb
commit 0fcd1bb235
2 changed files with 12 additions and 0 deletions

View File

@ -2,6 +2,8 @@
* ftp-basic.c (ftp_pasv): Fix memory leak. * ftp-basic.c (ftp_pasv): Fix memory leak.
* http.c (gethttp): Fix memory leak.
2009-06-14 Phil Pennock <mutt-dev@spodhuis.org> (tiny change) 2009-06-14 Phil Pennock <mutt-dev@spodhuis.org> (tiny change)
* host.h: Declare `is_valid_ip_address'. * host.h: Declare `is_valid_ip_address'.
* host.c (is_valid_ip_address): New function. * host.c (is_valid_ip_address): New function.

View File

@ -2030,6 +2030,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
if (write_error < 0) if (write_error < 0)
{ {
CLOSE_INVALIDATE (sock); CLOSE_INVALIDATE (sock);
request_free (req);
return WRITEFAILED; return WRITEFAILED;
} }
@ -2039,6 +2040,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
logprintf (LOG_VERBOSE, _("Failed reading proxy response: %s\n"), logprintf (LOG_VERBOSE, _("Failed reading proxy response: %s\n"),
fd_errstr (sock)); fd_errstr (sock));
CLOSE_INVALIDATE (sock); CLOSE_INVALIDATE (sock);
request_free (req);
return HERR; return HERR;
} }
message = NULL; message = NULL;
@ -2059,6 +2061,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
quotearg_style (escape_quoting_style, quotearg_style (escape_quoting_style,
_("Malformed status line"))); _("Malformed status line")));
xfree (head); xfree (head);
request_free (req);
return HERR; return HERR;
} }
hs->message = xstrdup (message); hs->message = xstrdup (message);
@ -2070,6 +2073,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
logprintf (LOG_NOTQUIET, _("Proxy tunneling failed: %s"), logprintf (LOG_NOTQUIET, _("Proxy tunneling failed: %s"),
message ? quotearg_style (escape_quoting_style, message) : "?"); message ? quotearg_style (escape_quoting_style, message) : "?");
xfree_null (message); xfree_null (message);
request_free (req);
return CONSSLERR; return CONSSLERR;
} }
xfree_null (message); xfree_null (message);
@ -2085,11 +2089,13 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
if (!ssl_connect_wget (sock, u->host)) if (!ssl_connect_wget (sock, u->host))
{ {
fd_close (sock); fd_close (sock);
request_free (req);
return CONSSLERR; return CONSSLERR;
} }
else if (!ssl_check_certificate (sock, u->host)) else if (!ssl_check_certificate (sock, u->host))
{ {
fd_close (sock); fd_close (sock);
request_free (req);
return VERIFCERTERR; return VERIFCERTERR;
} }
using_ssl = true; using_ssl = true;
@ -2222,6 +2228,7 @@ read_header:
quotearg_style (escape_quoting_style, quotearg_style (escape_quoting_style,
_("Malformed status line"))); _("Malformed status line")));
CLOSE_INVALIDATE (sock); CLOSE_INVALIDATE (sock);
resp_free (resp);
request_free (req); request_free (req);
xfree (head); xfree (head);
return HERR; return HERR;
@ -2230,6 +2237,7 @@ read_header:
if (H_10X (statcode)) if (H_10X (statcode))
{ {
DEBUGP (("Ignoring response\n")); DEBUGP (("Ignoring response\n"));
resp_free (resp);
xfree (head); xfree (head);
goto read_header; goto read_header;
} }
@ -2450,6 +2458,8 @@ read_header:
retrieve the file. But if the output_document was given, then this retrieve the file. But if the output_document was given, then this
test was already done and the file didn't exist. Hence the !opt.output_document */ test was already done and the file didn't exist. Hence the !opt.output_document */
get_file_flags (hs->local_file, dt); get_file_flags (hs->local_file, dt);
request_free (req);
resp_free (resp);
xfree (head); xfree (head);
xfree_null (message); xfree_null (message);
return RETRUNNEEDED; return RETRUNNEEDED;