From a7732ebbe5716042e9736fb2f96b756e50374a49 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sat, 2 May 2009 20:48:59 +0000 Subject: Improve channel_from_msg(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@676 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/channels.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'libssh') diff --git a/libssh/channels.c b/libssh/channels.c index 6470173f..5ab650f1 100644 --- a/libssh/channels.c +++ b/libssh/channels.c @@ -284,17 +284,23 @@ error: return -1; } -static CHANNEL *channel_from_msg(SSH_SESSION *session){ - u32 chan; - CHANNEL *channel; - if (buffer_get_u32(session->in_buffer,&chan)!=sizeof(u32)){ - ssh_set_error(session,SSH_FATAL,"Getting channel from message : short read"); - return NULL; - } - channel=ssh_channel_from_local(session,ntohl(chan)); - if(!channel) - ssh_set_error(session,SSH_FATAL,"Server specified invalid channel %d",ntohl(chan)); - return channel; +static CHANNEL *channel_from_msg(SSH_SESSION *session) { + CHANNEL *channel; + u32 chan; + + if (buffer_get_u32(session->in_buffer, &chan) != sizeof(u32)) { + ssh_set_error(session, SSH_FATAL, + "Getting channel from message: short read"); + return NULL; + } + + channel = ssh_channel_from_local(session, ntohl(chan)); + if (channel == NULL) { + ssh_set_error(session, SSH_FATAL, + "Server specified invalid channel %d", ntohl(chan)); + } + + return channel; } static void channel_rcv_change_window(SSH_SESSION *session){ -- cgit