From b9e5fecf5f381f5a54edc73882f5fabaac1ac40d Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Sat, 31 Mar 2007 10:56:07 +0000
Subject: [PATCH] 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

---
 lib/multi.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

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;
   }