diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/ndpi_main.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 303497e62..8d80e25d8 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -6016,11 +6016,14 @@ ndpi_protocol_category_t ndpi_get_proto_category(struct ndpi_detection_module_st return(proto.category); /* simple rule: sub protocol first, master after */ - else if((proto.master_protocol == NDPI_PROTOCOL_UNKNOWN) || - (ndpi_str->proto_defaults[proto.app_protocol].protoCategory != NDPI_PROTOCOL_CATEGORY_UNSPECIFIED)) - return(ndpi_str->proto_defaults[proto.app_protocol].protoCategory); - else + else if((proto.master_protocol == NDPI_PROTOCOL_UNKNOWN) + || (ndpi_str->proto_defaults[proto.app_protocol].protoCategory != NDPI_PROTOCOL_CATEGORY_UNSPECIFIED)) { + if(proto.app_protocol < (NDPI_MAX_SUPPORTED_PROTOCOLS+NDPI_MAX_NUM_CUSTOM_PROTOCOLS)) + return(ndpi_str->proto_defaults[proto.app_protocol].protoCategory); + } else if(proto.master_protocol < (NDPI_MAX_SUPPORTED_PROTOCOLS+NDPI_MAX_NUM_CUSTOM_PROTOCOLS)) return(ndpi_str->proto_defaults[proto.master_protocol].protoCategory); + + return(NDPI_PROTOCOL_CATEGORY_UNSPECIFIED); } /* ****************************************************** */ |