aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2008-12-11 23:52:56 +0000
committerDaniel Stenberg <daniel@haxx.se>2008-12-11 23:52:56 +0000
commit0f5895faee96934fdeea82f42f45bb3e53b915e5 (patch)
treeed782bb89422e79698068d95942a23d9f928b613
parentc0dfe6e51d2bdaa0cf6dedfdad8bd7748f9edd36 (diff)
- Bug report #2416182 titled "crash in ConnectionExists when using
duphandle+curl_mutli" (http://curl.haxx.se/bug/view.cgi?id=2416182) showed that curl_easy_duphandle() wrongly also copied the pointer to the connection cache, which was plain wrong and caused a segfault if the handle would be used in a different multi handle than the handle it was duplicated from.
-rw-r--r--CHANGES7
-rw-r--r--RELEASE-NOTES1
-rw-r--r--lib/easy.c9
3 files changed, 10 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index b428af81c..8398d27e9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
Changelog
+Daniel Stenberg (12 Dec 2008)
+- Bug report #2416182 titled "crash in ConnectionExists when using
+ duphandle+curl_mutli" (http://curl.haxx.se/bug/view.cgi?id=2416182) showed
+ that curl_easy_duphandle() wrongly also copied the pointer to the connection
+ cache, which was plain wrong and caused a segfault if the handle would be
+ used in a different multi handle than the handle it was duplicated from.
+
Daniel Stenberg (11 Dec 2008)
- Keshav Krity found out that libcurl failed to deal with dotted IPv6
addresses if they were very long (>39 letters) due to a too strict address
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index da0d98ba9..5d7de1253 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -28,6 +28,7 @@ This release includes the following bugfixes:
o 550 response from SIZE no longer treated as missing file
o ftps:// control connections now use explicit protection level
o dotted IPv6 addresses longer than 39 bytes failed
+ o curl_easy_duphandle() doesn't try to duplicate the connection cache pointer
This release includes the following known bugs:
diff --git a/lib/easy.c b/lib/easy.c
index 2c2490142..ae669f9be 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -624,13 +624,8 @@ CURL *curl_easy_duphandle(CURL *incurl)
if(Curl_dupset(outcurl, data) != CURLE_OK)
break;
- if(data->state.used_interface == Curl_if_multi)
- outcurl->state.connc = data->state.connc;
- else
- outcurl->state.connc = Curl_mk_connc(CONNCACHE_PRIVATE, -1);
-
- if(!outcurl->state.connc)
- break;
+ /* the connection cache is setup on demand */
+ outcurl->state.connc = NULL;
outcurl->state.lastconnect = -1;