From c001ed53fa89f203e3d6aa402e9a9126dc34f5b1 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 16 Sep 2006 20:57:59 +0000 Subject: [PATCH] Armel Asselin - 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 Curl_ftp_done. So we simply return success from there if no ftp pointer is set. --- lib/ftp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/ftp.c b/lib/ftp.c index f50918694..44dcf9340 100644 --- 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;