diff options
author | Luca Deri <lucaderi@users.noreply.github.com> | 2020-03-12 18:13:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-12 18:13:30 +0100 |
commit | 70ee793ff3dac24af0d0526cc40ff3639fa3feed (patch) | |
tree | 98d9edf7d15895b694f4752615c5aee617df9945 /src/lib/protocols/netbios.c | |
parent | 1e933e8b026f6f88f27d64ec2260013f38d268d0 (diff) | |
parent | 7806eb5f5b02fd78de1db20caeebc56088ebec3e (diff) |
Merge pull request #856 from catenacyber/fuzzfix5
Fuzzfix5
Diffstat (limited to 'src/lib/protocols/netbios.c')
-rw-r--r-- | src/lib/protocols/netbios.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/protocols/netbios.c b/src/lib/protocols/netbios.c index edc9f755f..02d96b043 100644 --- a/src/lib/protocols/netbios.c +++ b/src/lib/protocols/netbios.c @@ -38,7 +38,7 @@ struct netbios_header { /* ****************************************************************** */ /* The function below has been inherited by tcpdump */ -int ndpi_netbios_name_interpret(char *in, char *out, u_int out_len) { +static int ndpi_netbios_name_interpret(char *in, size_t inlen, char *out, u_int out_len) { int ret = 0, len; char *b; @@ -46,7 +46,7 @@ int ndpi_netbios_name_interpret(char *in, char *out, u_int out_len) { b = out; *out = 0; - if(len > (out_len-1) || len < 1) + if(len > (out_len-1) || len < 1 || 2*len > inlen) return(-1); while (len--) { @@ -80,7 +80,7 @@ static void ndpi_int_netbios_add_connection(struct ndpi_detection_module_struct char name[64]; u_int off = flow->packet.payload[12] == 0x20 ? 12 : 14; - if(ndpi_netbios_name_interpret((char*)&flow->packet.payload[off], name, sizeof(name)) > 0) + if(ndpi_netbios_name_interpret((char*)&flow->packet.payload[off], flow->packet.payload_packet_len - off, name, sizeof(name)) > 0) snprintf((char*)flow->host_server_name, sizeof(flow->host_server_name)-1, "%s", name); if(sub_protocol == NDPI_PROTOCOL_UNKNOWN) |