Andreas Schneider
332df98fc9
sftp: Move the packet payload to the message
...
This reduces memory allocations and copying.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 0762057eb9 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
d4cc3f69c6
sftp: Use SSH_BUFFER_FREE in sftp_message_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 57153f6481 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
534c58c475
sftp: Reformat sftp_message_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 4c32befd93 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
84fd910423
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 >
(cherry picked from commit be8302e2f3 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
d51f77c2b1
sftp: Reformat sftp_read_and_dispatch()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 97d2e1f4cb )
2018-09-17 10:53:01 +02:00
Andreas Schneider
47376cbc77
sftp: Validate the packet handle before we allocate memory
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 12fc0ea1bf )
2018-09-17 10:53:01 +02:00
Andreas Schneider
85c3db3e89
sftp: Reformat sftp_get_message()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 573eab0d51 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
3f8a522c7f
sftp: Use bool for is_eof in sftp_packet_read()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 0e317e612f )
2018-09-17 10:53:01 +02:00
Andreas Schneider
eb08802b7c
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 >
(cherry picked from commit 01135703a3 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
dc587045bf
sftp: Use 16K for the transfer buffer size
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit c070414309 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
9b495b72c5
sftp: Get the packet type directly from the buffer
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit d2cc4eccc7 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
2ce6c56609
sftp: Limit packet size to 256 MB
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 38781f69b0 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
9caef95899
sftp: Directly read and validate the packet size from the bufffer
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit dc4faf9952 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
66c2630aaf
sftp: Use read_packet from sftp handle
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit cbbc6ddcb6 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
b8f63ee2df
sftp: Simplify the code for reading data
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit a7456bf4d5 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
68adb49996
sftp: Reformat sftp_packet_read()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit afc14fe003 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
12e94bfd18
sftp: Keep a ssh_packet for reading in the sftp handle
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 79a3fcac72 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
4fc3d7a27f
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 >
(cherry picked from commit 945afaa6b4 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
466bb332c1
sftp: Reformat sftp_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit d840a05be3 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
ff25b45367
sftp: Reformat sftp_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 662c30eb72 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
df83f4fb57
include: Add SSH_BUFFER_FREE
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 29b5477849 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
5bda3ab9f6
cmake: Correctly detect if glob has gl_flags member
...
Thanks to Baruch Siach.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 2e8f2f03e7 )
2018-09-17 10:53:01 +02:00
Andreas Schneider
9a057159a2
config: Fix size type
...
src/config.c:562:12: error: assuming signed overflow does not occur when
simplifying conditional to constant [-Werror=strict-overflow]
if (args < 1) {
^
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit ceecd3fd6f )
2018-09-06 09:25:05 +02:00
Andreas Schneider
9c0875dd5d
cmake: Use -Wpedantic and remove -pedantic-errors
...
We get -Werror if -DPICKY_DEVELOPER=ON is set.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit bfd33ecf29 )
2018-09-06 09:25:03 +02:00
Jakub Jelen
1fa5a2a504
tests: UsePrivilegeSeparation has no effect since OpenSSH 7.5
...
Additionally, we can already work around the privilege separation.
http://www.openssh.com/txt/release-7.5
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 56317caafc )
2018-09-05 21:57:40 +02:00
Jakub Jelen
a08a2f52fb
tests: Do not trace sshd
...
OpenSSH's sshd does not work well under valgrind so lets avoid tracing it.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit ca4fb9c6f8 )
2018-09-05 21:57:38 +02:00
Andreas Schneider
21d37f8605
cmake: Move CompilerFlags to own file
...
They need to be included before the project() call.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 91800eb243 )
2018-09-05 21:57:35 +02:00
Andreas Schneider
e43586b4de
cmake: Update defaults
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 2923ad59f9 )
2018-09-05 21:57:24 +02:00
Jakub Jelen
dc7e1bdb39
tests: Verify the Match keyword from configuration file
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 556ad59a5a )
2018-09-05 12:39:02 +02:00
Jakub Jelen
03d559b066
tests: No need to restore log level now
...
Since the verbosity is now set from the setup phase, we do not
need to reset the verbosity, especially not to any arbirary value
such as WARNING.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit fcb203cb2d )
2018-09-05 12:39:02 +02:00
Jakub Jelen
3191c1f6be
tests: Use global verbosity in tests
...
This allows adjusting the log level of config and options tests using
environment variable LIBSSH_VERBOSITY as it works in most of the other
tests.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 6dbcc21921 )
2018-09-05 12:39:02 +02:00
Jakub Jelen
d46f01cb7c
tests: Missing unlink
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 2eccd04ff6 )
2018-09-05 12:39:02 +02:00
Jakub Jelen
04e290a19b
config: Parse Match keyword
...
Amends f818e63f8 , which introduced the constants and matching of this
configuration option, but did not implement the handling of the values
which was causing the configuration parser failing for certain
configurations.
This commit exposes match_pattern_list() from match.c
Red Hat Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1624425
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit e9b44d26b1 )
2018-09-05 12:39:02 +02:00
Jakub Jelen
bad407f5e2
config: Do not overwrite previously matched result in Host blocks
...
The match_hostname() expects comma separated list, while the Host
config keyword in openssh uses spaces separated list by default.
Therefore any subseqent match or negated match in space separated
list will overwrite the previous matches.
This also adjusts the tests to make sure both of the versions work.
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 9f5f10552b )
2018-09-05 12:39:02 +02:00
Andreas Schneider
2787756efe
tests: Define LIBSSH_STATIC for torture_cmocka
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 458bda8877 )
2018-09-05 12:39:01 +02:00
Andreas Schneider
7b35afdf6b
tests: Fix linking unit tests
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit 3d35250c07 )
2018-09-05 12:39:01 +02:00
Andreas Schneider
dba2903e38
channels: Allow infinite timeout for ssh_channel_read_timout()
...
This is also documented.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit ef06ef2c1b )
2018-09-05 12:39:01 +02:00
Andreas Schneider
965014b035
libsshpp: Initialize the string returned by getIssueBanner()
...
Fixes T13
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit ba1ff992ce )
2018-09-04 20:54:52 +02:00
Andreas Schneider
c4ec92f375
channels: Don't read from a closed channel
...
Fixes T76
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
(cherry picked from commit e558827c4e )
2018-09-04 20:35:30 +02:00
Andreas Schneider
54cf9d1364
auth: Use calloc to allocate memory
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 1e195a232a )
2018-09-04 20:00:04 +02:00
Andreas Schneider
23ce6d7156
misc: Use C99 initializer to initialize string
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit d1cd914012 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
07473976e1
pki_container: Use string functions for cleanup
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit c3980d433a )
2018-09-04 20:00:04 +02:00
Andreas Schneider
51063fe07e
packet: Use C99 initializer to reset session->in_packet
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 78498ee289 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
9cc1af1d53
packet: Reformat ssh_packet_parse_type()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 76f5a60a82 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
8a83bc0569
gzip: Use calloc in initcompress() and initdecompress()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 07986731c6 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
0181f5b5ed
kex: Use C99 initializer instead of memset
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit f1608778be )
2018-09-04 20:00:04 +02:00
Andreas Schneider
eaae8ce086
channels: Remove memset in ssh_channel_do_free()
...
We have nice tools to detect that in the meantime.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 72e91d5131 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
0b2072dd30
channels: Reformat ssh_channel_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 4af4b59e21 )
2018-09-04 20:00:04 +02:00
Andreas Schneider
2e77cf6b34
channels: Use calloc() in ssh_channel_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit ca464ca2ba )
2018-09-04 20:00:04 +02:00
Andreas Schneider
ad3c052e1c
channel: Reformat ssh_channel_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
(cherry picked from commit 9ac6ac6c26 )
2018-09-04 20:00:04 +02:00