aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_domain_classify.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ndpi_domain_classify.c')
-rw-r--r--src/lib/ndpi_domain_classify.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/lib/ndpi_domain_classify.c b/src/lib/ndpi_domain_classify.c
index 385796e08..917c897f6 100644
--- a/src/lib/ndpi_domain_classify.c
+++ b/src/lib/ndpi_domain_classify.c
@@ -68,6 +68,9 @@ void ndpi_domain_classify_free(ndpi_domain_classify *s) {
u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s) {
u_int32_t i, tot_len = sizeof(ndpi_domain_classify);
+ if(!s)
+ return(0);
+
for(i=0; i<MAX_NUM_NDPI_DOMAIN_CLASSIFICATIONS; i++) {
if(s->classes[i].domains != NULL) {
tot_len += ndpi_bitmap64_size(s->classes[i].domains);
@@ -82,9 +85,14 @@ u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s) {
bool ndpi_domain_classify_add(ndpi_domain_classify *s,
u_int8_t class_id,
- char *domain) {
+ const char *domain) {
u_int32_t i;
- char *dot = strrchr(domain, '.');
+ char *dot;
+
+ if(!s || !domain)
+ return(false);
+
+ dot = strrchr(domain, '.');
if(!dot) return(false);
if((!strcmp(dot, ".arpa")) || (!strcmp(dot, ".local")))
@@ -184,11 +192,11 @@ static bool is_valid_domain_char(u_char c) {
bool ndpi_domain_classify_contains(ndpi_domain_classify *s,
u_int8_t *class_id /* out */,
- char *domain) {
+ const char *domain) {
u_int32_t i, len;
- char *dot, *elem;
+ const char *dot, *elem;
- if(!domain) return(false);
+ if(!domain || !s) return(false);
if((len = strlen(domain)) == 0) return(false);
if((dot = strrchr(domain, '.')) == NULL) return(false);
if((!strcmp(dot, ".arpa")) || (!strcmp(dot, ".local"))) return(false);