Improve channel_from_msg().

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@676 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
Andreas Schneider
2009-05-02 20:48:59 +00:00
parent 6538121494
commit a7732ebbe5

View File

@@ -284,17 +284,23 @@ error:
return -1; return -1;
} }
static CHANNEL *channel_from_msg(SSH_SESSION *session){ static CHANNEL *channel_from_msg(SSH_SESSION *session) {
u32 chan; CHANNEL *channel;
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"); if (buffer_get_u32(session->in_buffer, &chan) != sizeof(u32)) {
return NULL; ssh_set_error(session, SSH_FATAL,
} "Getting channel from message: short read");
channel=ssh_channel_from_local(session,ntohl(chan)); return NULL;
if(!channel) }
ssh_set_error(session,SSH_FATAL,"Server specified invalid channel %d",ntohl(chan));
return channel; 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){ static void channel_rcv_change_window(SSH_SESSION *session){