From 563fbe4de8ee090b40b50415a86f9a3da16f46b0 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Sat, 6 Aug 2011 10:31:43 +0200 Subject: channels: Fix checking for fatal errors. We need this that we don't end up in and infinite poll loop. --- src/channels.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/channels.c') diff --git a/src/channels.c b/src/channels.c index f01d52e8..ddccb97c 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1452,6 +1452,11 @@ static int channel_request(ssh_channel channel, const char *request, } while(channel->request_state == SSH_CHANNEL_REQ_STATE_PENDING){ ssh_handle_packets(session,-1); + if(session->session_state == SSH_SESSION_STATE_ERROR) { + channel->request_state = SSH_CHANNEL_REQ_STATE_ERROR; + break; + } + } /* we received something */ switch (channel->request_state){ -- cgit