Jakub Jelen
605f7fb2de
Revert "Fix error: dereferencing pointer to incomplete type ‘struct timeval’"
...
because of inconsistent author and sign-off
This reverts commit 8ea7fc6129 .
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2021-05-12 16:01:15 +02:00
Xiang Xiao
8ea7fc6129
Fix error: dereferencing pointer to incomplete type ‘struct timeval’
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Sahana Prasad <sahana@redhat.com >
Change-Id: I99d2016595966d805c9e27b5c2f2a0a5b4ad8611
2021-05-10 12:17:54 +02:00
Tom Deseyn
a4b8045fb8
channel_rcv_close: indentation
...
Signed-off-by: Tom Deseyn <tom.deseyn@gmail.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2021-01-11 20:46:02 +01:00
Tom Deseyn
44dfee778f
channesl: Fix delayed close
...
If the SSH2_MSG_CHANNEL_CLOSE was previously received, change the
channel state to SSH_STATE_CHANNEL_CLOSED in
ssh_channel_read_timeout() after reading all data available.
Fixes T31
Signed-off-by: Tom Deseyn <tom.deseyn@gmail.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2021-01-11 20:38:24 +01:00
Dirkjan Bussink
0987e6065c
Always check return value of ssh_list_new()
...
Another item identified during code review was cases where the return
value of ssh_list_new() was not properly checked and handled. This
updates all cases that were missing this to handle failure to allocate a
new list.
Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2020-12-11 13:35:20 +01:00
Anderson Toshiyuki Sasaki
750e4f3f9d
channel: Do not return error if the server closed the channel
...
If the server properly closed the channel, the client should not return
error if it finds the channel closed.
Fixes T231
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2020-06-23 16:14:27 +02:00
Jakub Jelen
6417f5a3ca
channels: Avoid returning SSH_AGAIN from ssh_channel_poll_timeout()
...
This addresses a regression introduced in 3bad0607 , partially fixed in 022409e9 ,
but the function was still able to return SSH_AGAIN, which was not expected by
callers.
Based on discussion in [1] and [2]
[1] https://gitlab.com/libssh/libssh-mirror/-/merge_requests/101
[2] https://www.libssh.org/archive/libssh/2020-03/0000029.html
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2020-04-20 14:14:33 +02:00
Jakub Jelen
fe0fcbbc67
channels: reformat
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2020-04-20 14:14:33 +02:00
Andreas Schneider
702e7e4c85
channels: Replace PRIdS with ANSI C99 %zu
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2020-02-12 09:39:06 +01:00
Andreas Schneider
022409e99c
channels: Fix ssh_channel_poll_timeout() not returing available bytes
...
Fixes T211
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2020-01-23 10:20:59 +01:00
Andreas Schneider
752c906ea7
channels: Use SSH_BUFFER_FREE()
...
Fixes T183
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
1832ed4fef
channels: Use SSH_STRING_FREE()
...
Fixes T183
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
500481e101
channels: Return size_t for count_ptrs()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
dad2720355
channels: Fix integer and bool argument of channel_default_bufferize()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
6f39deefcd
channels: Fix type of arguments of grow_window()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
0abd187dba
channels: Fix type of arguments of channel_open()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
07a57b74ba
channels: Use ssize_t for to_read
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
8d671efdbd
channels: Reformat ssh_channel_read_nonblocking()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
3bad060738
channels: Use a size_t variable for length check
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Andreas Schneider
fbe115abba
channesl: Reformat ssh_channel_poll_timeout()
...
Fixes T188
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-12-09 16:08:03 +01:00
Anderson Toshiyuki Sasaki
2f1f662d46
channels: Initialize states explicitly
...
In ssh_channel_new(), initialize channel->state and
channel->request_state explicitly for better readability.
Fixes T194
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-11-18 11:59:01 +01:00
Andreas Schneider
e5767bf0b7
channel: Document ssh_channel_request_sftp()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-11-04 09:47:02 +01:00
Jakub Jelen
2f05243a4a
channels: Correctly reports failed channels opening
...
Fixes T75
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2019-09-24 16:04:52 +02:00
Jakub Jelen
89a9eb8811
Reformat channel_open()
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2019-09-24 16:04:52 +02:00
Jakub Jelen
3cf2b41f5e
channels: Do not use deprecated functions in the example code
...
Signed-off-by: Jakub Jelen <jjelen@redhat.com >
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
2019-09-24 16:04:52 +02:00
Anderson Toshiyuki Sasaki
ab25ca205d
channels: Do not mix integer types
...
Use uint32_t when expecting 32 bits unsigned int. Use PRIu32 macro to
print correctly 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
Andreas Schneider
8a885f0bd3
channels: Add check if we are authenticated before we create a channel
...
Fixes T139
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:19 +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
Enji Cooper
5ffc595d0d
Document more @return values with doxygen for APIs
...
Summary:
* Note that SSH_ERROR can be returned on error in `ssh_channel_get_exit_status`
and `ssh_channel_get_session`.
* Note the return codes for `channel_open` and `grow_window`; although these
are internal APIs, it's best to document their behavior.
* Replace `@returns` use with `@return`. While Doxygen supports the
former as a synonym for `@return`, it isn't documented in the manual
(and might not be supported by other downstream documentation tools).
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
Test Plan: n/a
Reviewers: #libssh, asn
Differential Revision: https://bugs.libssh.org/D15
2019-04-29 13:17:11 +02:00
Till Wimmer
95ab5f0dce
channel: Don't send EOF on channel more than once
...
Signed-off-by: Till Wimmer <g4-lisz@tonarchiv.ch >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2019-04-29 13:17:01 +02:00
pmorris67
f05571841b
channels: Added function to create channel to UNIX socket
...
[asn: Reformatting and added openssh version check]
Signed-off-by: Philip Morris <philip.morris67@ntlworld.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2019-03-29 08:10:43 +01:00
Andreas Schneider
6cd8d4a24a
channels: Don't call ssh_channel_close() twice
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-12 18:31:31 +01:00
Andreas Schneider
c3067f8e73
channels: Send close if we received a remote close
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-10 16:42:22 +01:00
Andreas Schneider
1d5b222cc4
channels: Reformat ssh_channel_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-10 14:59:21 +01:00
Andreas Schneider
13b9d268d4
channel: Add SSH_CHANNEL_FLAG_CLOSED_LOCAL
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-10 14:59:21 +01:00
Andreas Schneider
0ba10870d1
channel: Reformat ssh_channel_close()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-10 14:57:50 +01:00
Andreas Schneider
e4e51ccc13
session: Check the session timeout and use it if set
...
This checks if a timeout has been set using ssh_options_set(). If it has
been set it will use that parametr by default for blocking sessions.
This is at least what users are expecting.
Fixes T33
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:49:19 +01:00
Anderson Toshiyuki Sasaki
8e69d435ef
channels: Set error state when closed channel is read
...
When an attempt to read a closed channel happens, set the session error
state properly.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-12-07 17:44:46 +01:00
Nicolas Viennot
59ada799d7
packets: Fix ssh_send_keepalive()
...
ssh_send_keepalive() should use global_request() to properly configure
the state machine for packet filtering.
Signed-off-by: Nicolas Viennot <nicolas@viennot.biz >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-11-20 07:55:08 +01:00
Andreas Schneider
cde13b0f00
channels: Check return code of ssh_packet_send()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-10-24 09:48:35 +02:00
Andreas Schneider
8f31623947
channels: Reformat ssh_channel_send_eof()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-10-24 09:48:35 +02:00
Andreas Schneider
253bda4bac
channels: Check return of ssh_buffer_unpack()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-10-24 09:48:35 +02:00
Anderson Toshiyuki Sasaki
68b0c7a934
CVE-2018-10933: Check channel state when OPEN_FAILURE arrives
...
When a SSH2_MSG_OPEN_FAILURE arrives, the channel state is checked
to be in SSH_CHANNEL_STATE_OPENING.
Fixes T101
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-10-16 09:19:03 +02:00
Anderson Toshiyuki Sasaki
459868c4a5
CVE-2018-10933: Check channel state when OPEN_CONFIRMATION arrives
...
When a SSH2_MSG_OPEN_CONFIRMATION arrives, the channel state is checked
to be in SSH_CHANNEL_STATE_OPENING.
Fixes T101
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com >
Reviewed-by: Andreas Schneider <asn@cryptomilk.org >
2018-10-16 09:19:03 +02:00
Andreas Schneider
ef06ef2c1b
channels: Allow infinite timeout for ssh_channel_read_timout()
...
This is also documented.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-05 11:43:05 +02:00
Andreas Schneider
e558827c4e
channels: Don't read from a closed channel
...
Fixes T76
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
2018-09-04 20:34:52 +02:00
Andreas Schneider
72e91d5131
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 >
2018-09-04 19:58:11 +02:00
Andreas Schneider
4af4b59e21
channels: Reformat ssh_channel_free()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-09-04 19:58:03 +02:00
Andreas Schneider
ca464ca2ba
channels: Use calloc() in ssh_channel_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-09-04 19:57:58 +02:00
Andreas Schneider
9ac6ac6c26
channel: Reformat ssh_channel_new()
...
Signed-off-by: Andreas Schneider <asn@cryptomilk.org >
Reviewed-by: Jakub Jelen <jjelen@redhat.com >
2018-09-04 19:57:53 +02:00