url.c and transfer.c: nullify connection pointer when free()'ed

This commit is contained in:
Yang Tse 2011-11-02 22:34:41 +01:00
parent 3f5e267b9d
commit 6bdeca967d
2 changed files with 10 additions and 3 deletions

View File

@ -1991,12 +1991,17 @@ connect_host(struct SessionHandle *data,
/* Now, if async is TRUE here, we need to wait for the name
to resolve */
res = Curl_resolver_wait_resolv(*conn, NULL);
if(CURLE_OK == res)
if(CURLE_OK == res) {
/* Resolved, continue with the connection */
res = Curl_async_resolved(*conn, &protocol_done);
else
if(res)
*conn = NULL;
}
else {
/* if we can't resolve, we kill this "connection" now */
(void)Curl_disconnect(*conn, /* dead_connection */ FALSE);
*conn = NULL;
}
}
return res;

View File

@ -593,8 +593,10 @@ CURLcode Curl_ch_connc(struct SessionHandle *data,
NOTE: for conncache_multi cases we must make sure that we only
close handles not in use.
*/
for(i=newamount; i< c->num; i++)
for(i=newamount; i< c->num; i++) {
Curl_disconnect(c->connects[i], /* dead_connection */ FALSE);
c->connects[i] = NULL;
}
/* If the most recent connection is no longer valid, mark it
invalid. */