curl_multi_remove_handle: allow multiple removes
authorDaniel Stenberg <daniel@haxx.se>
Thu, 29 Aug 2013 20:08:01 +0000 (22:08 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 29 Aug 2013 20:08:45 +0000 (22:08 +0200)
When removing an already removed handle, avoid that to ruin the
internals and just return OK instead.

lib/multi.c

index fb495e0..e723a3e 100644 (file)
@@ -483,6 +483,10 @@ CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
   if(!GOOD_EASY_HANDLE(curl_handle))
     return CURLM_BAD_EASY_HANDLE;
 
+  /* Prevent users from trying to remove same easy handle more than once */
+  if(!data->multi)
+    return CURLM_OK; /* it is already removed so let's say it is fine! */
+
   if(easy) {
     bool premature = (data->mstate < CURLM_STATE_COMPLETED) ? TRUE : FALSE;
     bool easy_owns_conn = (data->easy_conn &&