Anderson Toshiyuki Sasaki
0280ff12a5
sftp: Do not mix integer types
...
Don't use long unsigned int as equivalent as uint32_t. Use macros to
correctly print the values independently of the architecture.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-06-14 15:22:45 +02:00
David Wedderwille
32eec7b418
SSH_LOG: Adjust log level from SSH_LOG_WARNING to SSH_LOG_PROTOCOL
...
Fixes T149
Signed-off-by: David Wedderwille <davidwe@posteo.de >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-06-13 16:43:44 +02:00
raminfp
9b1772ecbd
sftp: Remove the break statements
...
They aren't needed and perhaps some compilers will issue "Unreachable
code" warnings.
Signed-off-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-05-22 15:35:29 +02:00
David Wedderwille
cc536377f9
sftp server: Implementation of sftp_server_free() as counterpart to sftp_server_new()
...
Fixes T143
Signed-off-by: David Wedderwille <davidwe@posteo.de >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-04-29 13:17:24 +02:00
Andreas Schneider
c4348c7b3c
sftp: Check if the channel is still valid
...
Fixes T138
Reported-by: Jan Pazdziora <jpazdziora@redhat.com >
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-04-29 13:17:16 +02:00
Anderson Toshiyuki Sasaki
8ddbe7bec6
sftp: Add NULL check in sftp_ext_free()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:25 +01:00
Anderson Toshiyuki Sasaki
61ad276a87
sftp: Reformat sftp_ext_free()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-26 13:56:22 +01:00
Andreas Schneider
9f1718e159
Revert "sftp: Set error if invalid session pointer is passed to sftp_new()"
...
This reverts commit d011b780c3 .
2019-01-05 13:17:32 +01:00
Andreas Schneider
d011b780c3
sftp: Set error if invalid session pointer is passed to sftp_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2019-01-04 13:31:34 +01:00
Anderson Toshiyuki Sasaki
f05717d23e
sftp: Add NULL check in sftp_fstat()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2018-12-07 17:47:22 +01:00
Anderson Toshiyuki Sasaki
eaa97d2062
sftp: Add NULL check in sftp_xstat()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:47:18 +01:00
Anderson Toshiyuki Sasaki
bda2cc69af
sftp: Add NULL check in sftp_opendir()
...
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:47:11 +01:00
Anderson Toshiyuki Sasaki
83d827d7dd
sftp: Set sftp error when received unexpected message
...
Set sftp error to SSH_FX_BAD_MESSAGE if an unexpected message is
received.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:47:00 +01:00
Anderson Toshiyuki Sasaki
0f95295966
sftp: Set sftp error code when fail occurs
...
When an operation fails in sftp subsystem, set the sftp error, so that
it can be obtained by sftp_get_error().
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:44:52 +01:00
Anderson Toshiyuki Sasaki
d78a29eb79
sftp: Set error when EOF is received in sftp_packet_read()
...
When reading a sftp packet and an EOF is received before all requested
bytes are read, set the session and sftp error codes.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:43:08 +01:00
Andreas Schneider
3784226fd8
sftp: Do not overwrite errors set by channel functions
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-11-30 18:52:40 +01:00
Andreas Schneider
3245b50795
sftp: Only prepend header data once
...
This reduces memory moving.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-10-08 09:27:06 +02:00
Andreas Schneider
508dfc5251
sftp: Reformat sftp_packet_write()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-10-08 09:26:59 +02:00
Andreas Schneider
aec9fa4442
sftp: Use bytearray macros
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-10-05 14:38:43 +02:00
Alberto Aguirre
14f5624ff5
sftpserver: allocate packet on sftp_server_new
...
Ensure sftp_server_new allocates the packet and payload as
sftp_packet_read now expects the packet and payload to be
pre-allocated.
Similarly, ensure sftp_get_client_message does not free the packet.
Signed-off-by: Alberto Aguirre <albaguirre@gmail.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-25 16:41:54 +02:00
Chris Townsend
6c56c1e0d7
sftpserver: Support some openssh extensions
...
Add support for "hardlink@openssh.com " and
"posix-rename@openssh.com " extensions.
Signed-off-by: Chris Townsend <christopher.townsend@canonical.com >
Signed-off-by: Alberto Aguirre <albaguirre@gmail.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-20 16:35:13 +02:00
Andreas Schneider
a30d542207
sftp: Include stdint.h
...
Thanks to Apex Liu
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-19 12:25:03 +02:00
Harald Sitter
97cb302c0e
sftp: fix buffer_unpack argument to be char** rather than char*
...
Summary:
buffer variable 's' gets unpacked as char**, the previous code was passing
a char* causing segfaults on all readlink calls inside the unpacking code
Test Plan:
- without patchy examples/samplesftp segfaults in readlink
- with patchy it doesn't
Reviewers: asn
Differential Revision: https://bugs.libssh.org/D14
Signed-off-by: Harald Sitter <sitter@kde.org >
2018-09-19 11:18:12 +02:00
Andreas Schneider
cc83b463ce
sftp: Fix a possible null pointer dereference
...
CID 1395721
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-18 10:19:59 +02:00
Andreas Schneider
0762057eb9
sftp: Move the packet payload to the message
...
This reduces memory allocations and copying.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
57153f6481
sftp: Use SSH_BUFFER_FREE in sftp_message_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
4c32befd93
sftp: Reformat sftp_message_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
be8302e2f3
sftp: Allocate a new buffer in sftp_packet_read() if needed
...
We will move the buffer to the message instead of duplicating the
memory.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
97d2e1f4cb
sftp: Reformat sftp_read_and_dispatch()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
12fc0ea1bf
sftp: Validate the packet handle before we allocate memory
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
573eab0d51
sftp: Reformat sftp_get_message()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
0e317e612f
sftp: Use bool for is_eof in sftp_packet_read()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
01135703a3
sftp: Use 's' only in the scope it is needed
...
This revaled a bug when reading the packet type.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
c070414309
sftp: Use 16K for the transfer buffer size
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
d2cc4eccc7
sftp: Get the packet type directly from the buffer
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
38781f69b0
sftp: Limit packet size to 256 MB
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
dc4faf9952
sftp: Directly read and validate the packet size from the bufffer
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
cbbc6ddcb6
sftp: Use read_packet from sftp handle
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
a7456bf4d5
sftp: Simplify the code for reading data
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
afc14fe003
sftp: Reformat sftp_packet_read()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
79a3fcac72
sftp: Keep a ssh_packet for reading in the sftp handle
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
945afaa6b4
sftp: Remove ZERO_STRUCTP from sftp_free()
...
The structure doesn't hold any sensitive data and this would be
optimized away anyway.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
d840a05be3
sftp: Reformat sftp_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
662c30eb72
sftp: Reformat sftp_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-17 10:48:49 +02:00
Andreas Schneider
4774d2b9f7
sftp: Fix segfault in sftp_canonicalize_path()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-04 17:30:18 +02:00
Andreas Schneider
e601dbd8e3
sftp: Use ssh_buffer_pack() in sftp_fstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
f3ffd8aa41
sftp: Reformat sftp_lstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
4d98b1cd7e
sftp: Use ssh_buffer_pack() in sftp_xstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
b00a0578f9
sftp: Reformat sftp_xstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
336c097ae7
sftp: Use ssh_buffer_unpack() in sftp_canonicalize_path()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00