From 91e27ce755a2dbf8084517fb4ec441a260ffee84 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 25 Oct 2007 07:47:38 +0000 Subject: [PATCH] Fixed a TFTP memory leak. Enabled test 2003 to verify this. --- CHANGES | 5 +++++ RELEASE-NOTES | 2 +- lib/tftp.c | 6 +++++- tests/data/DISABLED | 1 - 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index e6cc37a..ab7cce1 100644 --- a/CHANGES +++ b/CHANGES @@ -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 c35f947..efd7e73 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 ba78422..041a5f3 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 a655a70..95953ea 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 -- 2.7.4