From 5cc2e69d0dcc161b8fa119cb7fe5f92966814f05 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 18 Feb 2011 18:03:37 +0100 Subject: channel: Fixed a possible NULL pointe dereference. --- src/channels.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/channels.c b/src/channels.c index a8aaa5e..f0cc84a 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1126,9 +1126,7 @@ int channel_write_common(ssh_channel channel, const void *data, ssh_session session; int origlen = len; size_t effectivelen; - /* handle the max packet len from remote side, be nice */ - /* 10 bytes for the headers */ - size_t maxpacketlen = channel->remote_maxpacket - 10; + size_t maxpacketlen; if(channel == NULL || data == NULL) { return -1; @@ -1140,6 +1138,12 @@ int channel_write_common(ssh_channel channel, const void *data, } enter_function(); + /* + * Handle the max packet len from remote side, be nice + * 10 bytes for the headers + */ + maxpacketlen = channel->remote_maxpacket - 10; + if (channel->local_eof) { ssh_set_error(session, SSH_REQUEST_DENIED, "Can't write to channel %d:%d after EOF was sent", -- cgit v1.2.3