- Fixed the problem with doing a zero byte SCP transfer, verified with test

case 617 (which was added by Daniel Fandrich 5 Mar 2008).
This commit is contained in:
Daniel Stenberg 2008-03-22 22:00:21 +00:00
parent 98c9a5b7f6
commit 95bd901efe
5 changed files with 23 additions and 12 deletions

View File

@ -6,6 +6,10 @@
Changelog Changelog
Daniel Stenberg (22 Mar 2008)
- Fixed the problem with doing a zero byte SCP transfer, verified with test
case 617 (which was added by Daniel Fandrich 5 Mar 2008).
Daniel Fandrich (20 Mar 2008) Daniel Fandrich (20 Mar 2008)
- Fixed a problem where curl-config --protocols could erroneously show LDAPS - Fixed a problem where curl-config --protocols could erroneously show LDAPS
support when curl didn't even have regular LDAP support. It looks like support when curl didn't even have regular LDAP support. It looks like

View File

@ -50,6 +50,7 @@ This release includes the following bugfixes:
o SFTP upload with CURLOPT_FTP_CREATE_MISSING_DIRS on re-used connection o SFTP upload with CURLOPT_FTP_CREATE_MISSING_DIRS on re-used connection
o SFTP infinite loop when given an invalid quote command o SFTP infinite loop when given an invalid quote command
o curl-config erroneously reported LDAPS support with missing LDAP libraries o curl-config erroneously reported LDAPS support with missing LDAP libraries
o SCP infinite loop when downloading a zero byte file
This release includes the following known bugs: This release includes the following known bugs:

View File

@ -3,8 +3,6 @@ To be addressed before 7.18.1 (planned release: April 2008)
[feature freeze entered, no new features!] [feature freeze entered, no new features!]
126 - scp download 0 bytes, test case 617
127 - Dan Petitt's Progress During Large Posts problem 127 - Dan Petitt's Progress During Large Posts problem
128 - Phil Blundell's ares and ipv6 fix 128 - Phil Blundell's ares and ipv6 fix

View File

@ -397,18 +397,26 @@ CURLcode Curl_readwrite(struct connectdata *conn,
bytestoread = (size_t)totalleft; bytestoread = (size_t)totalleft;
} }
/* receive data from the network! */ if(bytestoread) {
readrc = Curl_read(conn, conn->sockfd, k->buf, bytestoread, &nread); /* receive data from the network! */
readrc = Curl_read(conn, conn->sockfd, k->buf, bytestoread, &nread);
/* subzero, this would've blocked */ /* subzero, this would've blocked */
if(0 > readrc) if(0 > readrc)
break; /* get out of loop */ break; /* get out of loop */
/* get the CURLcode from the int */ /* get the CURLcode from the int */
result = (CURLcode)readrc; result = (CURLcode)readrc;
if(result>0) if(result>0)
return result; return result;
}
else {
/* read nothing but since we wanted nothing we consider this an OK
situation to proceed from */
nread = 0;
result = CURLE_OK;
}
if((k->bytecount == 0) && (k->writebytecount == 0)) { if((k->bytecount == 0) && (k->writebytecount == 0)) {
Curl_pgrsTime(data, TIMER_STARTTRANSFER); Curl_pgrsTime(data, TIMER_STARTTRANSFER);

View File

@ -3,4 +3,4 @@
# test cases are run by runtests.pl. Just add the plain test case numbers, one # test cases are run by runtests.pl. Just add the plain test case numbers, one
# per line. # per line.
# Lines starting with '#' letters are treated as comments. # Lines starting with '#' letters are treated as comments.
617