diff options
author | Dan Fandrich <dan@coneharvesters.com> | 2008-10-21 07:10:25 +0000 |
---|---|---|
committer | Dan Fandrich <dan@coneharvesters.com> | 2008-10-21 07:10:25 +0000 |
commit | 7ff38c14a97e701a9ab521a3730b014c3647b14e (patch) | |
tree | 5666a2f2e6d3bb22b8e4d41da069c4572cef71b2 | |
parent | 3f2de3d1019140571a59c04249de085a318f9266 (diff) |
Fixed some problems with SFTP range support to fix test cases 634 through 637.
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | TODO-RELEASE | 2 | ||||
-rw-r--r-- | lib/ssh.c | 18 | ||||
-rw-r--r-- | tests/data/DISABLED | 4 |
4 files changed, 18 insertions, 10 deletions
@@ -6,6 +6,10 @@ Changelog +Daniel Fandrich (21 Oct 2008) +- Fixed some problems with SFTP range support to fix test cases 634 through + 637. + Daniel Fandrich (17 Oct 2008) - Fixed a compile error reported by Albert Chin on AIX and IRIX when using GTLS. diff --git a/TODO-RELEASE b/TODO-RELEASE index 36a22ed2d..282fa9979 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -15,8 +15,6 @@ Awaiting feedback, updates or removal: 182 - Make CURLINFO_LASTSOCKET accessible during perform -187 - Failing SFTP range tests cases 634 through 637 - Patches pending commit: 183 - "libcurl issue with IPv6 and c-ares" @@ -1644,11 +1644,21 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) while(ptr && *ptr && (isspace((int)*ptr) || (*ptr=='-'))) ptr++; to=curlx_strtoofft(ptr, &ptr2, 0); - if ((ptr == ptr2) /* no "to" value given */ - || (to > size)) { - to = size; + if((ptr == ptr2) /* no "to" value given */ + || (to >= size)) { + to = size - 1; } - if (from > to) { + if(from < 0) { + /* from is relative to end of file */ + from += size; + } + if(from >= size) { + failf(data, "Offset (%" + FORMAT_OFF_T ") was beyond file size (%" FORMAT_OFF_T ")", + from, attrs.filesize); + return CURLE_BAD_DOWNLOAD_RESUME; + } + if(from > to) { from = to; size = 0; } diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 012450fb0..2055e9f16 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -3,7 +3,3 @@ # test cases are run by runtests.pl. Just add the plain test case numbers, one # per line. # Lines starting with '#' letters are treated as comments. -634 -635 -636 -637 |