1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-26 01:03:15 +03:00

sftp: Handle short reads of sftp_async_read().

sftp_async_read() and sftp_async_read_begin() assume that the whole read
will be successful but when this is not the case, the offset will be
wrong.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jonas Jonsson
2011-08-28 23:00:06 +02:00
committed by Andreas Schneider
parent a060a235a4
commit d1df255df4

View File

@@ -1945,9 +1945,8 @@ int sftp_async_read(sftp_file file, void *data, uint32_t size, uint32_t id){
return SSH_ERROR;
}
len = ssh_string_len(datastring);
//handle->offset+=len;
/* We already have set the offset previously. All we can do is warn that the expected len
* and effective lengths are different */
/* Update the offset with the correct value */
file->offset = file->offset - (size - len);
memcpy(data, ssh_string_data(datastring), len);
ssh_string_free(datastring);
sftp_leave_function();