diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-25 15:23:46 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-10-19 22:01:28 +0200 |
commit | c5c219f2d36a15bebc23365741ce3f036ba9fb47 (patch) | |
tree | 8cfc5ca56e589b491c813173b35c80ce234bd58d | |
parent | 89b3c0dd8901a41bb5d60ff868847d039e25f509 (diff) | |
download | libssh-c5c219f2d36a15bebc23365741ce3f036ba9fb47.tar.gz libssh-c5c219f2d36a15bebc23365741ce3f036ba9fb47.tar.xz libssh-c5c219f2d36a15bebc23365741ce3f036ba9fb47.zip |
channels: Check return of ssh_buffer_unpack()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-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, |