]> arthur.barton.de Git - netdata.git/blobdiff - src/simple_pattern.c
updated configs.signatures
[netdata.git] / src / simple_pattern.c
index 7e4424297f86c2c311f58a57dedaa6221dddf144..f72a42d06e6e53c01eb3e5d4cd76637d728bd902 100644 (file)
@@ -169,7 +169,7 @@ static inline int match_pattern(struct simple_pattern *m, const char *str, size_
 int simple_pattern_matches(SIMPLE_PATTERN *list, const char *str) {
     struct simple_pattern *m, *root = (struct simple_pattern *)list;
 
-    if(unlikely(!root)) return 0;
+    if(unlikely(!root || !str || !*str)) return 0;
 
     size_t len = strlen(str);
     for(m = root; m ; m = m->next)
@@ -184,8 +184,8 @@ int simple_pattern_matches(SIMPLE_PATTERN *list, const char *str) {
 static inline void free_pattern(struct simple_pattern *m) {
     if(!m) return;
 
-    if(m->next) free_pattern(m->next);
-    if(m->child) free_pattern(m->child);
+    free_pattern(m->child);
+    free_pattern(m->next);
     freez((void *)m->match);
     freez(m);
 }
@@ -193,5 +193,5 @@ static inline void free_pattern(struct simple_pattern *m) {
 void simple_pattern_free(SIMPLE_PATTERN *list) {
     if(!list) return;
 
-    free_pattern(((struct simple_pattern *)list)->next);
+    free_pattern(((struct simple_pattern *)list));
 }