diff options
author | David Kedves <kedazo@severalnines.com> | 2016-03-24 15:46:23 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2016-05-02 15:31:46 +0200 |
commit | d7df4429ebb59f5cae20625084fd464794eac817 (patch) | |
tree | e63d438a6aaf8fec473743485d72a3950d190cbb /src/channels.c | |
parent | ffe8b98cc2ee975c461322f0f119a398d783bdf7 (diff) | |
download | libssh-d7df4429ebb59f5cae20625084fd464794eac817.tar.gz libssh-d7df4429ebb59f5cae20625084fd464794eac817.tar.xz libssh-d7df4429ebb59f5cae20625084fd464794eac817.zip |
channels: Bugfix for a possible invalid pointer usage (channel->session) in various places
BUG: https://red.libssh.org/issues/230
Signed-off-by: David Kedves <kedazo@severalnines.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/channels.c')
-rw-r--r-- | src/channels.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/channels.c b/src/channels.c index ffcb1d5b..2a3fc45e 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1245,7 +1245,7 @@ static int channel_write_common(ssh_channel channel, return -1; } - if (channel->session->session_state == SSH_SESSION_STATE_ERROR) { + if (session->session_state == SSH_SESSION_STATE_ERROR) { return SSH_ERROR; } #ifdef WITH_SSH1 @@ -1276,7 +1276,7 @@ static int channel_write_common(ssh_channel channel, ssh_channel_waitwindow_termination,channel); if (rc == SSH_ERROR || !ssh_channel_waitwindow_termination(channel) || - channel->session->session_state == SSH_SESSION_STATE_ERROR || + session->session_state == SSH_SESSION_STATE_ERROR || channel->state == SSH_CHANNEL_STATE_CLOSED) goto out; continue; @@ -2708,7 +2708,7 @@ int ssh_channel_read_timeout(ssh_channel channel, if (rc == SSH_ERROR){ return rc; } - if (channel->session->session_state == SSH_SESSION_STATE_ERROR){ + if (session->session_state == SSH_SESSION_STATE_ERROR){ return SSH_ERROR; } if (channel->remote_eof && ssh_buffer_get_len(stdbuf) == 0) { @@ -2773,7 +2773,7 @@ int ssh_channel_read_nonblocking(ssh_channel channel, void *dest, uint32_t count to_read = ssh_channel_poll(channel, is_stderr); if (to_read <= 0) { - if (channel->session->session_state == SSH_SESSION_STATE_ERROR){ + if (session->session_state == SSH_SESSION_STATE_ERROR){ return SSH_ERROR; } |