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
Andreas Schneider
1dd8466f66
sftp: Use ssh_buffer_pack() in sftp_canonicalize_path()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
8b19ef05f3
sftp: Reformat sftp_canonicalize_path()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
7e11e41a9f
sftp: Use sftp_buffer_pack() in sftp_fstatvfs()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
5914ea7c75
sftp: Reformat sftp_fstatvfs()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
f1e84d5e67
sftp: Use ssh_buffer_pack() in sftp_fsync()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
8e3dd09e11
sftp: Use ssh_buffer_pack() in sftp_statvfs()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
ae0afec98d
sftp: Reformat sftp_statvfs()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
0be43c333e
sftp: Use ssh_buffer_unpack() in sftp_readlink()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
83a5d3b258
sftp: Use ssh_buffer_pack() in sftp_readlink()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:23 +02:00
Andreas Schneider
bb4bdec184
sftp: Reformat sftp_readlink()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:39:16 +02:00
Andreas Schneider
e0449ba21f
sftp: Use ssh_buffer_pack() in sftp_setstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:37:24 +02:00
Andreas Schneider
8a56b90c3e
sftp: Reformat sftp_setstat()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:36:29 +02:00
Andreas Schneider
218c67a51d
sftp: Use ssh_buffer_pack() in sftp_mkdir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:36:29 +02:00
Andreas Schneider
89c525bbf1
sftp: Reformat sftp_mkdir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:36:29 +02:00
Andreas Schneider
2c0baef7d4
sftp: Use ssh_buffer_pack in sftp_open()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:34:00 +02:00
Andreas Schneider
bfb6718b50
sftp: Reformat sftp_open()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:34:00 +02:00
Andreas Schneider
d99c066a0b
sftp: Use ssh_buffer_pack() in sftp_handle_close()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:34:00 +02:00
Andreas Schneider
2844942c1b
sftp: Reformat sftp_handle_close()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:34:00 +02:00
Andreas Schneider
3a729829fd
sftp: Use ssh_buffer_pack() in sftp_readdir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:34:00 +02:00
Andreas Schneider
576fdbe1e8
sftp: Reformat sftp_readdir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:32:45 +02:00
Andreas Schneider
87df9cfc5d
sftp: Use ssh_buffer_pack() in sftp_opendir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:32:23 +02:00
Andreas Schneider
ea375d1605
sftp: Reformat sftp_opendir()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-03 18:32:23 +02:00
Andreas Schneider
509331ec81
sftp: Use strndup()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-08-29 19:04:44 +02:00
Jakub Jelen
ae3825dfb2
sftp: Avoid race condition reading incomplete data messages
...
This changes amends f561e6bcb3 which
introduces same check in one place, but miss it in other two places.
We encountered this issue with qemu using SFTP to transfer large
data chunks and in some cases, the file transfer was interrupted
without any reason. From the debug messages, it showed up that
last part of data message/packet was not handled in the time
of the sftp_read() call, therefore the ssh_channel_read() returned
zero (there was no more data to read yet), which made the whole
transfer fail hard instead of retrying later.
The proposed change is reusing the code from previously referenced
commit also in the other places.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-08-27 09:29:24 +02:00
Jakub Jelen
a0214dfc9a
sftp: Fix the debug message in sftp_enqueue()
...
This fixes the assignment of variables to comments and makes
the output symmetric with sftp_dequeue().
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-08-18 10:00:37 +02:00
Andreas Schneider
24aef4fbf1
sftp: Add missing size checks
...
CID 1238630
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-08-06 09:36:50 +02:00
Pino Toscano
12284b75fa
buffer: Add and use ssh_buffer_allocate_size()
...
Add a small helper for ssh_buffer to ensure that the buffer has a
certain amount of space already preallocated. This can be useful in case
it is known how much data is going to be added to a buffer, to avoid
multiple reallocations.
Make use of it in few places in the library.
Signed-off-by: Pino Toscano <ptoscano@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-08-01 11:04:33 +02:00
Andreas Schneider
f525fdb2e1
sftp: Check for NULL path and give correct error
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2017-11-09 11:41:58 +01:00
Andreas Schneider
f0ddde4826
Fix config.h includes
...
We need stdlib.h and string.h in priv.h for free() and memset().
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2017-10-28 14:31:37 +02:00
Pino Toscano
bc78383fac
sftp: Fix memory leak in sftp_fstat
...
When parsing the result of a successful fstat call, make sure to free
the resulting reply message.
Signed-off-by: Pino Toscano <ptoscano@redhat.com >
Reviewed-by: Andreas Schneider <asn@samba.org >
2016-10-22 16:03:33 +02:00
Tilo Eckert
1cc1a352fc
sftp: Add support for append in sftp_open()
...
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de >
2016-10-08 10:50:38 +02:00
Tilo Eckert
cfe7065ce1
sftp: Do not always set SSH_FXF_READ
...
Comparison ((flags & O_RDONLY) == O_RDONLY) is always true.
Also, O_RDWR, O_WRONLY and O_RDONLY are mutually exclusive => no need to check all of them
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de >
2016-10-08 10:45:30 +02:00
Andreas Schneider
f561e6bcb3
sftp: Correctly check for EOF else keep spinning if there is no data
...
This fixes an issue introduced with
dbf72ffba2
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2016-10-07 13:36:58 +02:00
Andreas Schneider
155a155d1d
sftp: Add sftp_fsync() function
...
BUG: https://red.libssh.org/issues/141
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2016-10-06 16:26:52 +02:00
Jeremy Cross
dbf72ffba2
sftp: ensure sftp_packet_read recognizes channel EOF to avoid infinite loop
...
Signed-off-by: Jeremy Cross <jcross@bomgar.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2016-09-09 11:39:32 +02:00
Andreas Schneider
412c501442
sftp: Use calloc() instead of malloc()/memset()
...
This is calloc() is faster then calling memset().
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2016-05-04 14:56:22 +02:00
Fabiano Fidêncio
05fd0acf45
buffer: do not use ssh_buffer_get_rest_len()
...
As ssh_buffer_get_len() actually calls ssh_buffer_get_rest_len(), let's
just use the first one. This is a preparatory step for removing
ssh_buffer_get_rest_len().
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2016-01-19 11:31:08 +01:00
Fabiano Fidêncio
954341dd1f
buffer: rename ssh_buffer_get_rest() to ssh_buffer_get()
...
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2016-01-19 11:31:07 +01:00
Fabiano Fidêncio
adc8c20ac1
cleanup: use ssh_ prefix in the buffer (non-static) functions
...
Having "ssh_" prefix in the functions' name will avoid possible clashes
when compiling libssh statically.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2016-01-19 11:31:07 +01:00
Tilo Eckert
672c3be9ed
sftp: Fix incorrect handling of received length fields
...
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de >
2015-08-01 10:52:57 +03:00
Tilo Eckert
71d86be42e
define our own platform-independent S_IF macros
...
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2015-07-30 10:47:34 +02:00
Tilo Eckert
267fe02088
fix file mode checks in sftp_open()
...
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2015-07-30 10:46:34 +02:00
Andreas Schneider
ca501df8c8
sftp: Fix size check
...
CID: #1296588
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2015-05-05 11:26:40 +02:00
Andreas Schneider
4b9916136d
sftp: Add bound check for size
...
CID: #1238630
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2015-05-04 17:54:01 +02:00
Kevin Fan
b5dc8197f7
Fix leak of sftp->ext when sftp_new() fails
...
Signed-off-by: Kevin Fan <kevinfan@google.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2015-04-14 20:56:56 +02:00
Andreas Schneider
af0dd3fb02
sftp: Fix a possible integer overflow.
...
CID: #1238630
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Aris Adamantiadis <aris@0xbadc0de.be >
2015-01-14 15:20:49 +01:00