diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2014-08-15 10:25:38 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-08-15 12:29:20 +0200 |
commit | 662217f4097b2efbde5f7f9a190ad1b031f35716 (patch) | |
tree | 81364e98a362ed77d294ca90fd181498e70a7780 | |
parent | 19433dca008c6ab93b31866a620ab3feef946628 (diff) | |
download | libssh-662217f4097b2efbde5f7f9a190ad1b031f35716.tar.gz libssh-662217f4097b2efbde5f7f9a190ad1b031f35716.tar.xz libssh-662217f4097b2efbde5f7f9a190ad1b031f35716.zip |
packet: Check return value of ssh_buffer_unpack().
CID: 1230357
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Aris Adamantiadis <aris@0xbadc0de.be>
-rw-r--r-- | src/packet.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/packet.c b/src/packet.c index 3ed286df..d16cd165 100644 --- a/src/packet.c +++ b/src/packet.c @@ -461,14 +461,23 @@ int ssh_packet_send_unimplemented(ssh_session session, uint32_t seqnum){ * @brief handles a SSH_MSG_UNIMPLEMENTED packet */ SSH_PACKET_CALLBACK(ssh_packet_unimplemented){ - uint32_t seq; + uint32_t seq; + int rc; + (void)session; /* unused */ - (void)type; - (void)user; - ssh_buffer_unpack(packet, "d", &seq); - SSH_LOG(SSH_LOG_RARE, - "Received SSH_MSG_UNIMPLEMENTED (sequence number %d)",seq); - return SSH_PACKET_USED; + (void)type; + (void)user; + + rc = ssh_buffer_unpack(packet, "d", &seq); + if (rc != SSH_OK) { + SSH_LOG(SSH_LOG_WARNING, + "Could not unpack SSH_MSG_UNIMPLEMENTED packet"); + } + + SSH_LOG(SSH_LOG_RARE, + "Received SSH_MSG_UNIMPLEMENTED (sequence number %d)",seq); + + return SSH_PACKET_USED; } /** @internal |