Armel Asselin - When the easy handle is removed from the multi while libcurl
authorDaniel Stenberg <daniel@haxx.se>
Sat, 16 Sep 2006 20:57:59 +0000 (20:57 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 16 Sep 2006 20:57:59 +0000 (20:57 +0000)
is still trying to resolve the host name, it seems that the ftp struct is not
yet initialized, but the removal action calls Curl_done() which calls
Curl_ftp_done. So we simply return success from there if no ftp pointer is
set.

lib/ftp.c

index f509186..44dcf93 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -2954,6 +2954,15 @@ CURLcode Curl_ftp_done(struct connectdata *conn, CURLcode status)
   char *path_to_use = data->reqdata.path;
   struct Curl_transfer_keeper *k = &data->reqdata.keep;
 
+  if(!ftp)
+    /* When the easy handle is removed from the multi while libcurl is still
+     * trying to resolve the host name, it seems that the ftp struct is not
+     * yet initialized, but the removal action calls Curl_done() which calls
+     * this function. So we simply return success if no ftp pointer is set.
+     */
+    return CURLE_OK;
+
+
   if (conn->sec_path)
     path_to_use = conn->sec_path;