diff options
author | rofl0r <retnyg@gmx.net> | 2011-08-05 03:05:22 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-08-07 12:47:17 +0200 |
commit | b542bc9e4e0cda2d86f6ddf95b31e6b9fbc20a96 (patch) | |
tree | 1ebc51072d91d6db222c94b76fd1f0f57ca74af1 | |
parent | 61a97ccedef470e587798fee52fb011e8d9c323a (diff) | |
download | libssh-b542bc9e4e0cda2d86f6ddf95b31e6b9fbc20a96.tar.gz libssh-b542bc9e4e0cda2d86f6ddf95b31e6b9fbc20a96.tar.xz libssh-b542bc9e4e0cda2d86f6ddf95b31e6b9fbc20a96.zip |
channels: Fix an endless loop in case of a channel_open error.
(cherry picked from commit 7ccd9c31b33798824b27e4af095b52b9026a1f98)
-rw-r--r-- | src/channels.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; |