From 0da37e0924ad848dc7cc3b4586b65da33f02e2b6 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 1 Jan 2011 16:16:32 +0100 Subject: [PATCH] channel_request_pty_size: fix reqPTY_state The state variable isn't properly set so every other call to the function fails! Bug: http://libssh2.org/mail/libssh2-devel-archive-2010-12/0096.shtml Reported by: Steve Legg --- src/channel.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/channel.c b/src/channel.c index e4a23c14..e0af14c7 100644 --- a/src/channel.c +++ b/src/channel.c @@ -1002,6 +1002,7 @@ channel_request_pty_size(LIBSSH2_CHANNEL * channel, int width, LIBSSH2_SESSION *session = channel->session; unsigned char *s; int rc; + int retcode = LIBSSH2_ERROR_PROTO; if (channel->reqPTY_state == libssh2_NB_state_idle) { channel->reqPTY_packet_len = 39; @@ -1044,15 +1045,11 @@ channel_request_pty_size(LIBSSH2_CHANNEL * channel, int width, "Unable to send window-change packet"); } _libssh2_htonu32(channel->reqPTY_local_channel, channel->local.id); - channel->reqPTY_state = libssh2_NB_state_sent; - - return LIBSSH2_ERROR_NONE; + retcode = LIBSSH2_ERROR_NONE; } channel->reqPTY_state = libssh2_NB_state_idle; - - /* reaching this point is a protocol error of some sorts */ - return LIBSSH2_ERROR_PROTO; + return retcode; } LIBSSH2_API int