diff options
author | rofl0r <retnyg@gmx.net> | 2011-08-05 03:05:22 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-08-06 11:12:02 +0200 |
commit | 7ccd9c31b33798824b27e4af095b52b9026a1f98 (patch) | |
tree | c667db62c34dd7550976b38108b404676142c522 /src | |
parent | af85337f5ff052437fa5cf117f3d065488640660 (diff) | |
download | libssh-7ccd9c31b33798824b27e4af095b52b9026a1f98.tar.gz libssh-7ccd9c31b33798824b27e4af095b52b9026a1f98.tar.xz libssh-7ccd9c31b33798824b27e4af095b52b9026a1f98.zip |
channels: Fix an endless loop in case of a channel_open error.
Diffstat (limited to 'src')
-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 97d02ff..fb57be0 100644 --- a/src/channels.c +++ b/src/channels.c @@ -297,6 +297,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; |