diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-25 15:23:46 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-10-24 09:48:35 +0200 |
commit | 253bda4bac7a062f2ab1a85d506d6eda70ae7cd6 (patch) | |
tree | 8cfc5ca56e589b491c813173b35c80ce234bd58d /src | |
parent | 480915c07d4c444cfa560af36f76344d366246c2 (diff) | |
download | libssh-253bda4bac7a062f2ab1a85d506d6eda70ae7cd6.tar.gz libssh-253bda4bac7a062f2ab1a85d506d6eda70ae7cd6.tar.xz libssh-253bda4bac7a062f2ab1a85d506d6eda70ae7cd6.zip |
channels: Check return of ssh_buffer_unpack()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c index 0e61e5cd..14da14d9 100644 --- a/src/channels.c +++ b/src/channels.c @@ -683,6 +683,10 @@ SSH_PACKET_CALLBACK(channel_rcv_request) { if (strcmp(request,"exit-status") == 0) { SAFE_FREE(request); rc = ssh_buffer_unpack(packet, "d", &channel->exit_status); + if (rc != SSH_OK) { + SSH_LOG(SSH_LOG_PACKET, "Invalid exit-status packet"); + return SSH_PACKET_USED; + } SSH_LOG(SSH_LOG_PACKET, "received exit-status %d", channel->exit_status); ssh_callbacks_execute_list(channel->callbacks, |