diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-10-25 07:47:38 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-10-25 07:47:38 +0000 |
commit | 91e27ce755a2dbf8084517fb4ec441a260ffee84 (patch) | |
tree | 6e087dc099dc6933e482d2cda2793c482c895fac | |
parent | 65ed69662513b14143e8821c72ea41d7c69113d9 (diff) |
Fixed a TFTP memory leak. Enabled test 2003 to verify this.
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | RELEASE-NOTES | 2 | ||||
-rw-r--r-- | lib/tftp.c | 6 | ||||
-rw-r--r-- | tests/data/DISABLED | 1 |
4 files changed, 11 insertions, 3 deletions
@@ -6,6 +6,11 @@ Changelog +Daniel S (25 October 2007) +- Fixed a few memory leaks when the same easy handle is re-used to request + URLs with different protocols. FTP and TFTP related leaks. Caught thanks to + Dan F's new test cases. + Dan F (24 October 2007) - Fixed the test FTP and TFTP servers to support the >10000 test number notation diff --git a/RELEASE-NOTES b/RELEASE-NOTES index c35f94710..efd7e730a 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -40,7 +40,7 @@ This release includes the following bugfixes: o CURLOPT_POSTFIELDS could fail to send binary data o specifying a proxy with a trailing slash didn't work (unless it also contained a port number) - o redirect from HTTP to FTP memory problem + o redirect from HTTP to FTP or TFTP memory problems and leaks o re-used connections a bit too much when using non-SSL protocols tunneled over a HTTP proxy o embed the manifest in VC8 builds diff --git a/lib/tftp.c b/lib/tftp.c index ba7842280..041a5f340 100644 --- a/lib/tftp.c +++ b/lib/tftp.c @@ -605,9 +605,13 @@ static CURLcode tftp_state_machine(tftp_state_data_t *state, static CURLcode Curl_tftp_connect(struct connectdata *conn, bool *done) { CURLcode code; - tftp_state_data_t *state; + tftp_state_data_t *state; int rc; + /* If there already is a protocol-specific struct allocated for this + sessionhandle, deal with it */ + Curl_reset_reqproto(conn); + state = conn->data->reqdata.proto.tftp = calloc(sizeof(tftp_state_data_t), 1); if(!state) diff --git a/tests/data/DISABLED b/tests/data/DISABLED index a655a70b9..95953eab3 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -4,4 +4,3 @@ # per line. # Lines starting with '#' letters are treated as comments. #1009 -2003 |