diff options
Diffstat (limited to 'src/lib/protocols/msn.c')
-rw-r--r-- | src/lib/protocols/msn.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/protocols/msn.c b/src/lib/protocols/msn.c index 4c5b73dcd..ec090cf00 100644 --- a/src/lib/protocols/msn.c +++ b/src/lib/protocols/msn.c @@ -442,15 +442,16 @@ static void ndpi_search_msn_tcp(struct ndpi_detection_module_struct *ndpi_struct } NDPI_LOG_DBG(ndpi_struct, "msn 7\n"); - if (flow->packet_counter <= MAX_PACKETS_FOR_MSN) { - if (memcmp(&packet->payload[0], "MSG ", 4) == 0 + if (flow->packet_counter <= MAX_PACKETS_FOR_MSN) { + if (packet->payload_packet_len >=4 && (memcmp(&packet->payload[0], "MSG ", 4) == 0 || memcmp(&packet->payload[0], "PNG", 3) == 0 || memcmp(&packet->payload[0], "QNG ", 4) == 0 || memcmp(&packet->payload[0], "OUT", 3) == 0 || memcmp(&packet->payload[0], "RNG ", 4) == 0 || memcmp(&packet->payload[0], "NLN ", 4) == 0 || memcmp(&packet->payload[0], "UBX ", 4) == 0 - || memcmp(&packet->payload[0], "XFR ", 4) == 0) { + || memcmp(&packet->payload[0], "XFR ", 4) == 0) + ){ ndpi_int_msn_add_connection(ndpi_struct, flow); NDPI_LOG_INFO(ndpi_struct, "found MSN\n"); |