- 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.
This commit is contained in:
		
							
								
								
									
										7
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								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 | ||||
|   | ||||
| @@ -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: | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Stenberg
					Daniel Stenberg