diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-10 09:00:35 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-10 09:00:35 +0000 |
commit | c841e984baeb8d42d3d26511b5d049c9ff4c7313 (patch) | |
tree | 0dde6b43ad296515ee02a7b8997e8ddc759db842 /libssh/messages.c | |
parent | 234844230cb2c2716d2c950671afa4b71c867acb (diff) | |
download | libssh-c841e984baeb8d42d3d26511b5d049c9ff4c7313.tar.gz libssh-c841e984baeb8d42d3d26511b5d049c9ff4c7313.tar.xz libssh-c841e984baeb8d42d3d26511b5d049c9ff4c7313.zip |
Add error checking to ssh message type functions.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@452 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/messages.c')
-rw-r--r-- | libssh/messages.c | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/libssh/messages.c b/libssh/messages.c index 79d6bba..c9867a8 100644 --- a/libssh/messages.c +++ b/libssh/messages.c @@ -710,40 +710,51 @@ error: return NULL; } -int ssh_message_type(SSH_MESSAGE *msg){ - return msg->type; +int ssh_message_type(SSH_MESSAGE *msg) { + if (msg == NULL) { + return -1; + } + + return msg->type; } -int ssh_message_subtype(SSH_MESSAGE *msg){ - switch(msg->type){ - case SSH_AUTH_REQUEST: - return msg->auth_request.method; - case SSH_CHANNEL_REQUEST_OPEN: - return msg->channel_request_open.type; - case SSH_CHANNEL_REQUEST: - return msg->channel_request.type; - } +int ssh_message_subtype(SSH_MESSAGE *msg) { + if (msg == NULL) { return -1; + } + + switch(msg->type) { + case SSH_AUTH_REQUEST: + return msg->auth_request.method; + case SSH_CHANNEL_REQUEST_OPEN: + return msg->channel_request_open.type; + case SSH_CHANNEL_REQUEST: + return msg->channel_request.type; + } + + return -1; } -int ssh_message_reply_default(SSH_MESSAGE *msg){ - switch(msg->type){ - case SSH_AUTH_REQUEST: - return ssh_message_auth_reply_default(msg,0); - break; - case SSH_CHANNEL_REQUEST_OPEN: - return ssh_message_channel_request_open_reply_default(msg); - break; - case SSH_CHANNEL_REQUEST: - return ssh_message_channel_request_reply_default(msg); - break; - default: - ssh_log(msg->session, SSH_LOG_PACKET, - "Don't know what to default reply to %d type", - msg->type); - break; - } - return 0; +int ssh_message_reply_default(SSH_MESSAGE *msg) { + if (msg == NULL) { + return -1; + } + + switch(msg->type) { + case SSH_AUTH_REQUEST: + return ssh_message_auth_reply_default(msg, 0); + case SSH_CHANNEL_REQUEST_OPEN: + return ssh_message_channel_request_open_reply_default(msg); + case SSH_CHANNEL_REQUEST: + return ssh_message_channel_request_reply_default(msg); + default: + ssh_log(msg->session, SSH_LOG_PACKET, + "Don't know what to default reply to %d type", + msg->type); + break; + } + + return -1; } void ssh_message_free(SSH_MESSAGE *msg){ |