aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/ssh.c
diff options
context:
space:
mode:
authorPhilippe Antoine <contact@catenacyber.fr>2020-03-19 16:54:31 +0100
committerPhilippe Antoine <contact@catenacyber.fr>2020-03-19 16:54:31 +0100
commitc6acf97bfbe5ad26db3c2f5dd4d379ac674d6fb3 (patch)
tree39c8df162295fa16620a5a0491b107a39ead71e5 /src/lib/protocols/ssh.c
parente9195589d29d86da1849ad0d195900e6567354cf (diff)
Adds different checks against overflows
Diffstat (limited to 'src/lib/protocols/ssh.c')
-rw-r--r--src/lib/protocols/ssh.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/protocols/ssh.c b/src/lib/protocols/ssh.c
index f3b50b609..959b9c090 100644
--- a/src/lib/protocols/ssh.c
+++ b/src/lib/protocols/ssh.c
@@ -96,6 +96,8 @@ static void ndpi_int_ssh_add_connection(struct ndpi_detection_module_struct
static u_int16_t concat_hash_string(struct ndpi_packet_struct *packet,
char *buf, u_int8_t client_hash) {
u_int16_t offset = 22, buf_out_len = 0;
+ if(offset+sizeof(u_int32_t) >= packet->payload_packet_len)
+ goto invalid_payload;
u_int32_t len = ntohl(*(u_int32_t*)&packet->payload[offset]);
offset += 4;