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>
(cherry picked from commit d7df4429eb)
This commit is contained in:
David Kedves
2016-03-24 15:46:23 +01:00
committed by Andreas Schneider
parent faca78f547
commit 0bf78b0b8b

View File

@@ -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;
@@ -2689,7 +2689,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 && buffer_get_rest_len(stdbuf) == 0) {
@@ -2754,7 +2754,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;
}