Robson Braga Araujo fixed a memory leak when you added an easy handle to a

multi stack and that easy handle had already been used to do one or more
easy interface transfers, as then the code threw away the previously used
DNS cache without properly freeing it.
This commit is contained in:
Daniel Stenberg 2006-05-09 11:33:00 +00:00
parent 094ceeba14
commit 73daf8ce33
3 changed files with 13 additions and 1 deletions

View File

@ -6,6 +6,12 @@
Changelog
Daniel (9 May 2006)
- Robson Braga Araujo fixed a memory leak when you added an easy handle to a
multi stack and that easy handle had already been used to do one or more
easy interface transfers, as then the code threw away the previously used
DNS cache without properly freeing it.
Daniel (8 May 2006)
- Fixed known bug #28. The TFTP code no longer assumes a packed struct and
thus works reliably on more platforms.

View File

@ -20,6 +20,7 @@ This release includes the following changes:
This release includes the following bugfixes:
o possible memory leak when adding easy handles to multi stack
o TFTP works in a more portable fashion (== on more platforms)
o WSAGetLastError() is now used (better) on Windows
o GnuTLS non-block case that could cause data trashing

View File

@ -315,7 +315,12 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
easy->easy_handle = easy_handle;
multistate(easy, CURLM_STATE_INIT);
/* for multi interface connections, we share DNS cache automaticly */
/* for multi interface connections, we share DNS cache automaticly.
First kill the existing one if there is any. */
if (easy->easy_handle->hostcache &&
easy->easy_handle->hostcache != multi->hostcache)
Curl_hash_destroy(easy->easy_handle->hostcache);
easy->easy_handle->hostcache = multi->hostcache;
/* We add this new entry first in the list. We make our 'next' point to the