From: x2018 Date: Sat, 8 Nov 2025 17:54:51 +0000 (+0800) Subject: ftp: refactor a piece of code by merging the repeated part X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a002c50510b08807928637a2aac95d477e3762ee;p=thirdparty%2Fcurl.git ftp: refactor a piece of code by merging the repeated part Closes #19411 --- 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 */