aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/oscar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/protocols/oscar.c')
-rw-r--r--src/lib/protocols/oscar.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/protocols/oscar.c b/src/lib/protocols/oscar.c
index 8be944993..869b36378 100644
--- a/src/lib/protocols/oscar.c
+++ b/src/lib/protocols/oscar.c
@@ -244,11 +244,19 @@ static void ndpi_search_oscar_tcp_connect(struct ndpi_detection_module_struct
*/
if (channel == DATA)
{
- family = get_u_int16_t(packet->payload, 6);
+ if (packet->payload_packet_len >= 8)
+ family = get_u_int16_t(packet->payload, 6);
+ else
+ family = 0;
if (packet->payload_packet_len >= 10)
type = get_u_int16_t(packet->payload, 8);
else
type = 0;
+ if (family == 0 || type == 0)
+ {
+ NDPI_ADD_PROTOCOL_TO_BITMASK(flow->excluded_protocol_bitmask, NDPI_PROTOCOL_OSCAR);
+ return;
+ }
/* Family 0x0001 */
if (family == htons(GE_SE_CTL))