summaryrefslogtreecommitdiff
path: root/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch')
-rw-r--r--core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch b/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch
new file mode 100644
index 000000000..73b23ea12
--- /dev/null
+++ b/core/curl/0001-curl_multi_remove_handle-allow-multiple-removes.patch
@@ -0,0 +1,29 @@
+From 84f3b3dd448399f9548468676e1bd1475dba8de5 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Thu, 29 Aug 2013 22:08:01 +0200
+Subject: [PATCH] curl_multi_remove_handle: allow multiple removes
+
+When removing an already removed handle, avoid that to ruin the
+internals and just return OK instead.
+---
+ lib/multi.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index fb495e0..e723a3e 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -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 &&
+--
+1.8.4
+