#249: sftp download data corruption
--------------------+--------------------
Reporter: maxmtl | Owner:
Type: defect | Status: new
Priority: normal | Milestone: 1.4.3
Component: SFTP | Version: 1.4.2
Keywords: | Blocked By:
Blocks: |
--------------------+--------------------
When using libssh2's sftp to receive a file from an Apache Mina SSHD
server (v0.6), the file is corrupted.
Other clients (sftp from Openssh, Filezilla) does not show this behavior.
Other SSH servers do not show this behavior.
The problem seems to be that when libssh2 asks for 2000 bytes in
SSH_FXP_READ, Mina SSHD always returns 32KB. When the SSH_FXP_DATA packet
is received, all 32KB is sent to the application instead of only 2000
bytes. However, the next 32KB received will have an offset of 2000 instead
of 32KB, thus corrupting the file.
The solutions:
- libssh2: limit the length of the chunk to the length of data that was
requested (see patch)
- Mina: correct the length of the data sent
With the attached patch it works, but takes much more time to complete
(2m27 for a 2 MB file, instead of around 14 seconds). At least, the data
is not corrupted.
-- Ticket URL: <https://trac.libssh2.org/ticket/249> libssh2 <https://trac.libssh2.org/> C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-develReceived on 2012-10-16