From e9a7d98eaccf6a361d77505c303df15e4e585919 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 9 Apr 2009 10:23:23 +0000 Subject: Add return value to handle_unimplemented(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@439 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/messages.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'libssh/messages.c') diff --git a/libssh/messages.c b/libssh/messages.c index dd952af..19f5a00 100644 --- a/libssh/messages.c +++ b/libssh/messages.c @@ -99,9 +99,16 @@ error: return rc; } -static void handle_unimplemented(SSH_SESSION *session){ - buffer_add_u32(session->out_buffer,htonl(session->recv_seq-1)); - packet_send(session); +static int handle_unimplemented(SSH_SESSION *session) { + if (buffer_add_u32(session->out_buffer, htonl(session->recv_seq - 1)) < 0) { + return -1; + } + + if (packet_send(session) != SSH_OK) { + return -1; + } + + return 0; } static SSH_MESSAGE *handle_userauth_request(SSH_SESSION *session){ @@ -430,8 +437,10 @@ SSH_MESSAGE *ssh_message_get(SSH_SESSION *session){ leave_function(); return ret; default: - handle_unimplemented(session); - ssh_set_error(session,SSH_FATAL,"Unhandled message %d\n",session->in_packet.type); + if (handle_unimplemented(session) == 0) { + ssh_set_error(session, SSH_FATAL, + "Unhandled message %d\n", session->in_packet.type); + } leave_function(); return NULL; } -- cgit