diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-09 20:40:14 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-09 20:40:14 +0000 |
commit | a7b70bc9eea6905e074791b4614b8250d712aaa0 (patch) | |
tree | 83c7b6189e0a7c546101e40d0e0e4ab0ac1f5e16 /libssh/messages.c | |
parent | 2a118371fac17dab48f05438064125051fb35a62 (diff) | |
download | libssh-a7b70bc9eea6905e074791b4614b8250d712aaa0.tar.gz libssh-a7b70bc9eea6905e074791b4614b8250d712aaa0.tar.xz libssh-a7b70bc9eea6905e074791b4614b8250d712aaa0.zip |
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
Diffstat (limited to 'libssh/messages.c')
-rw-r--r-- | libssh/messages.c | 35 |
1 files changed, 22 insertions, 13 deletions
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){ |