diff --git a/CHANGES b/CHANGES index 99899eae8b7c482b01873cd5668b6a3340b715f5..9ea7e69ecc0c2943db7313b44621a91f068456e1 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,15 @@ Daniel Fandrich (8 Oct 2008) - Added tests 1082 through 1085 to test symbolic --interface parameters Daniel Stenberg (8 Oct 2008) +- Bug #2152270 (http://curl.haxx.se/bug/view.cgi?id=2152270) identified and + fixed a CURLINFO_REDIRECT_URL memory leak and an additional wrong-doing: + + Any subsequent transfer with a redirect leaks memory, eventually crashing + the process potentially. + + Any subsequent transfer WITHOUT a redirect causes the most recent redirect + that DID occur on some previous transfer to still be reported. + - Igor filed bug #2111613 (http://curl.haxx.se/bug/view.cgi?id=2111613) that eventually identified a flaw in how the multi_socket interface in some cases missed to call the timeout callback when easy interfaces are removed and diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 77beeb5fe64857e0a43ab14f86600e1259f6d48c..4d8e21ec73fc62d8580c89b4e0e29b8a6c74f219 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -35,6 +35,7 @@ This release includes the following bugfixes: o FTP SIZE response 550 now causes CURLE_REMOTE_FILE_NOT_FOUND o CURLINFO_PRIMARY_IP fixed for persistent connection re-use cases o remove_handle/add_handle multi interface timer callback flaw + o CURLINFO_REDIRECT_URL memory leak and wrong-doing This release includes the following known bugs: diff --git a/TODO-RELEASE b/TODO-RELEASE index a0118a0a3722e480c02af4f657b672a368536137..7edb5801b685f4b441357914e5d1fc7680345abd 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -13,12 +13,8 @@ Awaiting feedback, updates or removal: 178 - "[Patch] Disable multi API support" -Patches pending commit: - -180 - CURLINFO_REDIRECT_URL leaks memory and is incorrect, bug #2152270 +182 - Make CURLINFO_LASTSOCKET accessible during perform -181 - "multi object is stuck" bug #2111613 - needs to be done slightly nicer - -182 - +Patches pending commit: +183 - diff --git a/lib/transfer.c b/lib/transfer.c index 2f4ce692da4064fab9ca54463295af1edf87aef0..5faec148e55f69648c039011b5e23e016d508681 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -1893,6 +1893,8 @@ CURLcode Curl_pretransfer(struct SessionHandle *data) data->state.authproblem = FALSE; data->state.authhost.want = data->set.httpauth; data->state.authproxy.want = data->set.proxyauth; + Curl_safefree(data->info.wouldredirect); + data->info.wouldredirect = NULL; /* If there is a list of cookie files to read, do it now! */ if(data->change.cookielist) { diff --git a/tests/data/DISABLED b/tests/data/DISABLED index f917042afaa0959dc9d3d8bedc351b5a54a36003..fb3ae0ec927f147df75ce201deea81825a1fde3b 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -3,5 +3,4 @@ # test cases are run by runtests.pl. Just add the plain test case numbers, one # per line. # Lines starting with '#' letters are treated as comments. -1080 -1081 +