aboutsummaryrefslogtreecommitdiff
path: root/libssh/messages.c
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-09 20:40:14 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-09 20:40:14 +0000
commita7b70bc9eea6905e074791b4614b8250d712aaa0 (patch)
tree83c7b6189e0a7c546101e40d0e0e4ab0ac1f5e16 /libssh/messages.c
parent2a118371fac17dab48f05438064125051fb35a62 (diff)
downloadlibssh-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.c35
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){