aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2010-07-19 22:50:15 +0200
committerAris Adamantiadis <aris@0xbadc0de.be>2010-07-19 22:50:15 +0200
commita7d9f4addd2e12e4b827cb2a262845503041699f (patch)
treefca0bb35e450b6469fded2c2d7c7b3d8ac4ed191
parenta4f4fa3058b41b1f5ef5a9a3a0bfcac32e6fd7aa (diff)
downloadlibssh-a7d9f4addd2e12e4b827cb2a262845503041699f.tar.gz
libssh-a7d9f4addd2e12e4b827cb2a262845503041699f.tar.xz
libssh-a7d9f4addd2e12e4b827cb2a262845503041699f.zip
Correctly handle failed opened channels
-rw-r--r--libssh/channels.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libssh/channels.c b/libssh/channels.c
index a0355796..0a7e5780 100644
--- a/libssh/channels.c
+++ b/libssh/channels.c
@@ -165,8 +165,10 @@ static int channel_open(ssh_channel channel, const char *type_c, int window,
type_c, channel->local_channel);
if (packet_wait(session, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, 1) != SSH_OK) {
- leave_function();
- return -1;
+ if(session->in_packet.type != SSH2_MSG_CHANNEL_OPEN_FAILURE) {
+ leave_function();
+ return -1;
+ }
}
switch(session->in_packet.type) {