1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

multi: CURLINFO_LASTSOCKET doesn't work after remove_handle

When curl_multi_remove_handle() is called and an easy handle is returned
to the connection cache held in the multi handle, then we cannot allow
CURLINFO_LASTSOCKET to extract it since that will more or less encourage
that the user uses the socket while it can get used by libcurl again.

Without this fix, we'd get a segfault in Curl_getconnectinfo() trying to
dereference the NULL pointer in 'data->state.connc'.

Bug: http://curl.haxx.se/bug/view.cgi?id=3023840
This commit is contained in:
Daniel Stenberg 2010-07-01 23:32:20 +02:00
parent 7239538d9a
commit 9be951a415

View File

@ -656,6 +656,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
to that since we're not part of that handle anymore */
easy->easy_handle->state.connc = NULL;
/* Since we return the connection back to the communal connection pool
we mark the last connection as inaccessible */
easy->easy_handle->state.lastconnect = -1;
/* Modify the connectindex since this handle can't point to the
connection cache anymore.