aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kedves <kedazo@severalnines.com>2016-03-24 15:46:23 +0100
committerAndreas Schneider <asn@cryptomilk.org>2016-05-02 15:31:46 +0200
commitd7df4429ebb59f5cae20625084fd464794eac817 (patch)
treee63d438a6aaf8fec473743485d72a3950d190cbb
parentffe8b98cc2ee975c461322f0f119a398d783bdf7 (diff)
downloadlibssh-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>
-rw-r--r--src/channels.c8
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;
}