summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-01-29 12:01:20 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-01-29 12:01:20 +0000
commit59b45a90cc04695d862d59d1d84126ad6cdf5f59 (patch)
tree680bbc31a3604f1d940f26e5e357884263772fd2
parentf661475962213123b5e640db9744b23ea361ac65 (diff)
downloadgnurl-59b45a90cc04695d862d59d1d84126ad6cdf5f59.tar.gz
gnurl-59b45a90cc04695d862d59d1d84126ad6cdf5f59.tar.bz2
gnurl-59b45a90cc04695d862d59d1d84126ad6cdf5f59.zip
multi interface: when a request is denied due to "Maximum redirects followed"
libcurl leaked the last Location: URL.
-rw-r--r--CHANGES3
-rw-r--r--lib/multi.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index c33f4e709..42317ac85 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,9 @@
Changelog
Daniel (29 January 2005)
+- multi interface: when a request is denied due to "Maximum redirects
+ followed" libcurl leaked the last Location: URL.
+
- Connect failures with the multi interface was often returned as "connect()
timed out" even though the reason was different.
diff --git a/lib/multi.c b/lib/multi.c
index 62bffec45..f569c281a 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -523,6 +523,10 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles)
easy->state = CURLM_STATE_CONNECT;
result = CURLM_CALL_MULTI_PERFORM;
}
+ else
+ /* Since we "took it", we are in charge of freeing this on
+ failure */
+ free(newurl);
}
else {
easy->state = CURLM_STATE_DONE;