diff options
| author | Andreas Schneider <mail@cynapses.org> | 2009-05-02 20:48:59 +0000 |
|---|---|---|
| committer | Andreas Schneider <mail@cynapses.org> | 2009-05-02 20:48:59 +0000 |
| commit | a7732ebbe5716042e9736fb2f96b756e50374a49 (patch) | |
| tree | 87d109e9b26074def3450d2d0c6e4f15f638fd18 /libssh | |
| parent | 653812149469289b177d39fcbe335fb75d427c31 (diff) | |
| download | libssh-a7732ebbe5716042e9736fb2f96b756e50374a49.tar.gz libssh-a7732ebbe5716042e9736fb2f96b756e50374a49.tar.xz libssh-a7732ebbe5716042e9736fb2f96b756e50374a49.zip | |
Improve channel_from_msg().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@676 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh')
| -rw-r--r-- | libssh/channels.c | 28 |
1 files changed, 17 insertions, 11 deletions
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){ |
