1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-05 00:55:04 -05:00

FTP: allow SIZE to fail when doing (resumed) upload

Added test 362 to verify.

Reported-by: Jordan Brown
Regression since 7ea2e1d0c5 (7.73.0)
Fixes #6715
Closes #6725
This commit is contained in:
Daniel Stenberg 2021-03-11 10:00:02 +01:00
parent dcccd8dd25
commit 7b2f0676c2
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 58 additions and 3 deletions

View File

@ -2309,8 +2309,12 @@ static CURLcode ftp_state_size_resp(struct Curl_easy *data,
}
else if(ftpcode == 550) { /* "No such file or directory" */
failf(data, "The file does not exist");
return CURLE_REMOTE_FILE_NOT_FOUND;
/* allow a SIZE failure for (resumed) uploads, when probing what command
to use */
if(instate != FTP_STOR_SIZE) {
failf(data, "The file does not exist");
return CURLE_REMOTE_FILE_NOT_FOUND;
}
}
if(instate == FTP_SIZE) {

View File

@ -60,7 +60,7 @@ test325 test326 test327 test328 test329 test330 test331 test332 test333 \
test334 test335 test336 test337 test338 test339 test340 test341 test342 \
test343 test344 test345 test346 test347 test348 test349 test350 test351 \
test352 test353 test354 test355 test356 test357 test358 test359 test360 \
test361 \
test361 test362 \
\
test393 test394 test395 test396 test397 \
\

51
tests/data/test362 Normal file
View File

@ -0,0 +1,51 @@
<testcase>
<info>
<keywords>
FTP
EPSV
STOR
</keywords>
</info>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP resume upload file with nothing to start from
</name>
<file name="log/test362.txt">
data
to
see
that FTP
works
so does it?
</file>
<command>
ftp://%HOSTIP:%FTPPORT/362 -T log/test362.txt --continue-at -
</command>
</client>
<verify>
<upload>
data
to
see
that FTP
works
so does it?
</upload>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
EPSV
TYPE I
SIZE 362
STOR 362
QUIT
</protocol>
</verify>
</testcase>