aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ftp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index 4d5d07a11..867c97994 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -2040,11 +2040,14 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
/* this just dumps information about this second connection */
ftp_pasv_verbose(conn, addr->addr, ftpc->newhost, connectport);
+ Curl_resolv_unlock(data, addr); /* we're done using this address */
+
Curl_safefree(conn->secondaryhostname);
- conn->secondaryhostname = strdup(ftpc->newhost);
conn->secondary_port = ftpc->newport;
+ conn->secondaryhostname = strdup(ftpc->newhost);
+ if(!conn->secondaryhostname)
+ return CURLE_OUT_OF_MEMORY;
- Curl_resolv_unlock(data, addr); /* we're done using this address */
conn->bits.do_more = TRUE;
state(conn, FTP_STOP); /* this phase is completed */