aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2014-08-15 10:25:38 +0200
committerAndreas Schneider <asn@cryptomilk.org>2014-08-15 12:29:20 +0200
commit662217f4097b2efbde5f7f9a190ad1b031f35716 (patch)
tree81364e98a362ed77d294ca90fd181498e70a7780
parent19433dca008c6ab93b31866a620ab3feef946628 (diff)
downloadlibssh-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.c23
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