From a002c50510b08807928637a2aac95d477e3762ee Mon Sep 17 00:00:00 2001 From: x2018 Date: Sun, 9 Nov 2025 01:54:51 +0800 Subject: [PATCH] ftp: refactor a piece of code by merging the repeated part Closes #19411 --- lib/ftp.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/ftp.c b/lib/ftp.c index 819fab462b..dd70c2a5ce 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -2744,16 +2744,6 @@ static CURLcode ftp_pwd_resp(struct Curl_easy *data, free(dir); return result; } - free(ftpc->entrypath); - ftpc->entrypath = dir; /* remember this */ - infof(data, "Entry path is '%s'", ftpc->entrypath); - /* also save it where getinfo can access it: */ - free(data->state.most_recent_ftp_entrypath); - data->state.most_recent_ftp_entrypath = strdup(ftpc->entrypath); - if(!data->state.most_recent_ftp_entrypath) - return CURLE_OUT_OF_MEMORY; - ftp_state(data, ftpc, FTP_SYST); - return result; } free(ftpc->entrypath); @@ -2764,6 +2754,11 @@ static CURLcode ftp_pwd_resp(struct Curl_easy *data, data->state.most_recent_ftp_entrypath = strdup(ftpc->entrypath); if(!data->state.most_recent_ftp_entrypath) return CURLE_OUT_OF_MEMORY; + + if(!ftpc->server_os && dir[0] != '/') { + ftp_state(data, ftpc, FTP_SYST); + return CURLE_OK; + } } else { /* could not get the path */