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

Bugfix: Avoid double free of iri->orig_url

When accessing a URL using IDN which directly redirects to another page,
wget would xfree_null(iri->orig_url); in src/retr.c:retrieve_url()
first, then later xfree_null(iri->orig_url); in src/iri.c:iri_free()
again.

This can be tested with wget -O /dev/null http://μφ.net
This commit is contained in:
Michael Stapelberg 2012-12-08 15:49:05 +01:00 committed by Giuseppe Scrivano
parent 3ebbd84518
commit a2c0835007
2 changed files with 6 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2012-12-08 Michael Stapelberg <michael@stapelberg.de> (tiny change)
* retr.c (retrieve_url): Set iri->orig_url to NULL after it is
freed.
2012-11-26 Giuseppe Scrivano <gscrivano@gnu.org> 2012-11-26 Giuseppe Scrivano <gscrivano@gnu.org>
* wget.h (MAX_INT_TO_STRING_LEN): Define macro. * wget.h (MAX_INT_TO_STRING_LEN): Define macro.

View File

@ -838,6 +838,7 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file,
iri->utf8_encode = opt.enable_iri; iri->utf8_encode = opt.enable_iri;
set_content_encoding (iri, NULL); set_content_encoding (iri, NULL);
xfree_null (iri->orig_url); xfree_null (iri->orig_url);
iri->orig_url = NULL;
/* Now, see if this new location makes sense. */ /* Now, see if this new location makes sense. */
newloc_parsed = url_parse (mynewloc, &up_error_code, iri, true); newloc_parsed = url_parse (mynewloc, &up_error_code, iri, true);