From a7b70bc9eea6905e074791b4614b8250d712aaa0 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 9 Apr 2009 20:40:14 +0000 Subject: Add error checking to ssh_message_channel_request_reply_default(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@450 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/messages.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) (limited to 'libssh/messages.c') diff --git a/libssh/messages.c b/libssh/messages.c index ea879f3..33deb13 100644 --- a/libssh/messages.c +++ b/libssh/messages.c @@ -633,20 +633,29 @@ int ssh_message_channel_request_reply_success(SSH_MESSAGE *msg) { return SSH_OK; } -static int ssh_message_channel_request_reply_default(SSH_MESSAGE *msg){ - u32 channel; - if(msg->channel_request.want_reply){ - channel=msg->channel_request.channel->remote_channel; - ssh_log(msg->session, SSH_LOG_PACKET, - "Sending a default channel_request denied to channel %d", channel); - buffer_add_u8(msg->session->out_buffer,SSH2_MSG_CHANNEL_FAILURE); - buffer_add_u32(msg->session->out_buffer,htonl(channel)); - return packet_send(msg->session); - } else { - ssh_log(msg->session, SSH_LOG_PACKET, - "The client doesn't want to know the request failed!"); - return 0; +static int ssh_message_channel_request_reply_default(SSH_MESSAGE *msg) { + u32 channel; + + if (msg->channel_request.want_reply) { + channel = msg->channel_request.channel->remote_channel; + + ssh_log(msg->session, SSH_LOG_PACKET, + "Sending a default channel_request denied to channel %d", channel); + + if (buffer_add_u8(msg->session->out_buffer, SSH2_MSG_CHANNEL_FAILURE) < 0) { + return SSH_ERROR; + } + if (buffer_add_u32(msg->session->out_buffer, htonl(channel)) < 0) { + return SSH_ERROR; } + + return packet_send(msg->session); + } + + ssh_log(msg->session, SSH_LOG_PACKET, + "The client doesn't want to know the request failed!"); + + return SSH_OK; } SSH_MESSAGE *ssh_message_get(SSH_SESSION *session){ -- cgit