Constantine Sapuntzakis detected and fixed a double free in builds done

with threaded resolver enabled (Windows default configuration) that would
get triggered when a curl handle is closed while doing DNS resolution.
This commit is contained in:
Yang Tse 2010-03-05 03:15:19 +00:00
parent 52f088ec1b
commit f4551a9678
3 changed files with 9 additions and 4 deletions

View File

@ -6,6 +6,11 @@
Changelog Changelog
Yang Tse (5 Mar 2010)
- Constantine Sapuntzakis detected and fixed a double free in builds done
with threaded resolver enabled (Windows default configuration) that would
get triggered when a curl handle is closed while doing DNS resolution.
Daniel Stenberg (2 Mar 2010) Daniel Stenberg (2 Mar 2010)
- [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and - [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and
ran into some issues with the GSSAPI tests in configure.ac. The tests first ran into some issues with the GSSAPI tests in configure.ac. The tests first

View File

@ -28,6 +28,7 @@ This release includes the following bugfixes:
o CURLOPT_CERTINFO memory leak o CURLOPT_CERTINFO memory leak
o sub-second timeouts improvements o sub-second timeouts improvements
o configure fixes for GSSAPI o configure fixes for GSSAPI
o threaded resolver double free when closing curl handle
This release includes the following known bugs: This release includes the following known bugs:

View File

@ -2490,12 +2490,11 @@ static void conn_free(struct connectdata *conn)
Curl_llist_destroy(conn->done_pipe, NULL); Curl_llist_destroy(conn->done_pipe, NULL);
/* possible left-overs from the async name resolvers */ /* possible left-overs from the async name resolvers */
#if defined(CURLRES_ASYNCH)
Curl_safefree(conn->async.hostname);
Curl_safefree(conn->async.os_specific);
#if defined(CURLRES_THREADED) #if defined(CURLRES_THREADED)
Curl_destroy_thread_data(&conn->async); Curl_destroy_thread_data(&conn->async);
#endif #elif defined(CURLRES_ASYNCH)
Curl_safefree(conn->async.hostname);
Curl_safefree(conn->async.os_specific);
#endif #endif
Curl_free_ssl_config(&conn->ssl_config); Curl_free_ssl_config(&conn->ssl_config);