aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ndpi_main.c')
-rw-r--r--src/lib/ndpi_main.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 10a479896..81eb5e277 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -2789,10 +2789,26 @@ struct ndpi_detection_module_struct *ndpi_init_detection_module(ndpi_init_prefs
ndpi_str->ndpi_num_custom_protocols = 0;
ndpi_str->host_automa.ac_automa = ac_automata_init(ac_domain_match_handler);
+ if(!ndpi_str->host_automa.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
ndpi_str->host_risk_mask_automa.ac_automa = ac_automata_init(ac_domain_match_handler);
+ if(!ndpi_str->host_risk_mask_automa.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
ndpi_str->common_alpns_automa.ac_automa = ac_automata_init(ac_domain_match_handler);
+ if(!ndpi_str->common_alpns_automa.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
load_common_alpns(ndpi_str);
ndpi_str->tls_cert_subject_automa.ac_automa = ac_automata_init(NULL);
+ if(!ndpi_str->tls_cert_subject_automa.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
ndpi_str->malicious_ja3_hashmap = NULL; /* Initialized on demand */
ndpi_str->malicious_sha1_hashmap = NULL; /* Initialized on demand */
ndpi_str->risky_domain_automa.ac_automa = NULL; /* Initialized on demand */
@@ -2806,7 +2822,15 @@ struct ndpi_detection_module_struct *ndpi_init_detection_module(ndpi_init_prefs
}
ndpi_str->custom_categories.hostnames.ac_automa = ac_automata_init(ac_domain_match_handler);
+ if(!ndpi_str->custom_categories.hostnames.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
ndpi_str->custom_categories.hostnames_shadow.ac_automa = ac_automata_init(ac_domain_match_handler);
+ if(!ndpi_str->custom_categories.hostnames_shadow.ac_automa) {
+ ndpi_exit_detection_module(ndpi_str);
+ return(NULL);
+ }
ndpi_str->custom_categories.ipAddresses = ndpi_patricia_new(32 /* IPv4 */);
ndpi_str->custom_categories.ipAddresses_shadow = ndpi_patricia_new(32 /* IPv4 */);
@@ -3859,6 +3883,9 @@ int ndpi_load_categories_file(struct ndpi_detection_module_struct *ndpi_str,
FILE *fd;
int len, num = 0;
+ if(!ndpi_str || !path)
+ return(-1);
+
fd = fopen(path, "r");
if(fd == NULL) {
@@ -3933,6 +3960,9 @@ int ndpi_load_risk_domain_file(struct ndpi_detection_module_struct *ndpi_str, co
FILE *fd;
int len, num = 0;
+ if(!ndpi_str || !path)
+ return(-1);
+
fd = fopen(path, "r");
if(fd == NULL) {
@@ -3978,7 +4008,7 @@ int ndpi_load_malicious_ja3_file(struct ndpi_detection_module_struct *ndpi_str,
FILE *fd;
int len, num = 0;
- if(!ndpi_str)
+ if(!ndpi_str || !path)
return(-1);
if(ndpi_str->malicious_ja3_hashmap == NULL && ndpi_hash_init(&ndpi_str->malicious_ja3_hashmap) != 0)
return(-1);
@@ -4042,7 +4072,7 @@ int ndpi_load_malicious_sha1_file(struct ndpi_detection_module_struct *ndpi_str,
size_t i, len;
int num = 0;
- if(!ndpi_str)
+ if(!ndpi_str || !path)
return(-1);
if(ndpi_str->malicious_sha1_hashmap == NULL && ndpi_hash_init(&ndpi_str->malicious_sha1_hashmap) != 0)
return(-1);
@@ -4113,6 +4143,9 @@ int ndpi_load_protocols_file(struct ndpi_detection_module_struct *ndpi_str, cons
int chunk_len = 1024, buffer_len = chunk_len, old_buffer_len;
int i, rc = -1;
+ if(!ndpi_str || !path)
+ return(-1);
+
fd = fopen(path, "r");
if(fd == NULL) {
@@ -7945,7 +7978,8 @@ int ndpi_get_protocol_id(struct ndpi_detection_module_struct *ndpi_str, char *pr
int i;
for(i = 0; i < (int) ndpi_str->ndpi_num_supported_protocols; i++)
- if(strcasecmp(proto, ndpi_str->proto_defaults[i].protoName) == 0)
+ if(ndpi_str->proto_defaults[i].protoName &&
+ strcasecmp(proto, ndpi_str->proto_defaults[i].protoName) == 0)
return(i);
return(-1);