1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-15 14:05:03 -05:00

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 /* Now, if async is TRUE here, we need to wait for the name
to resolve */ to resolve */
res = Curl_resolver_wait_resolv(*conn, NULL); res = Curl_resolver_wait_resolv(*conn, NULL);
if(CURLE_OK == res) if(CURLE_OK == res) {
/* Resolved, continue with the connection */ /* Resolved, continue with the connection */
res = Curl_async_resolved(*conn, &protocol_done); res = Curl_async_resolved(*conn, &protocol_done);
else if(res)
*conn = NULL;
}
else {
/* if we can't resolve, we kill this "connection" now */ /* if we can't resolve, we kill this "connection" now */
(void)Curl_disconnect(*conn, /* dead_connection */ FALSE); (void)Curl_disconnect(*conn, /* dead_connection */ FALSE);
*conn = NULL;
}
} }
return res; 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 NOTE: for conncache_multi cases we must make sure that we only
close handles not in use. 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); Curl_disconnect(c->connects[i], /* dead_connection */ FALSE);
c->connects[i] = NULL;
}
/* If the most recent connection is no longer valid, mark it /* If the most recent connection is no longer valid, mark it
invalid. */ invalid. */