From: Daniel Stenberg Date: Sat, 31 Mar 2007 10:56:07 +0000 (+0000) Subject: Check for a NULL easy->easy_conn in multi_getsock() since it can in fact X-Git-Tag: curl-7_16_2~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b9e5fecf5f381f5a54edc73882f5fabaac1ac40d;p=thirdparty%2Fcurl.git Check for a NULL easy->easy_conn in multi_getsock() since it can in fact happen when curl_multi_remove_handle() is called. CID 13. coverity.com scan --- diff --git a/lib/multi.c b/lib/multi.c index 2a4f1a16c2..ec9fd3309c 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -680,7 +680,14 @@ static int multi_getsock(struct Curl_one_easy *easy, of sockets */ int numsocks) { - if (easy->easy_handle->state.pipe_broke) { + /* If the pipe broke, or if there's no connection left for this easy handle, + then we MUST bail out now with no bitmask set. The no connection case can + happen when this is called from curl_multi_remove_handle() => + singlesocket() => multi_getsock(). + */ + + if (easy->easy_handle->state.pipe_broke || + !easy->easy_conn) { return 0; }