From b542bc9e4e0cda2d86f6ddf95b31e6b9fbc20a96 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Fri, 5 Aug 2011 03:05:22 +0200 Subject: channels: Fix an endless loop in case of a channel_open error. (cherry picked from commit 7ccd9c31b33798824b27e4af095b52b9026a1f98) --- src/channels.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/channels.c b/src/channels.c index 22de5cd3..b6ad996e 100644 --- a/src/channels.c +++ b/src/channels.c @@ -293,6 +293,10 @@ static int channel_open(ssh_channel channel, const char *type_c, int window, /* wait until channel is opened by server */ while(channel->state == SSH_CHANNEL_STATE_NOT_OPEN){ ssh_handle_packets(session, -2); + if (session->session_state == SSH_SESSION_STATE_ERROR) { + err = SSH_ERROR; + break; + } } if(channel->state == SSH_CHANNEL_STATE_OPEN) err=SSH_OK; -- cgit