Merge branch 'collectd-5.7'
[collectd.git] / src / utils_match.c
index e2f2980..e8add2d 100644 (file)
@@ -34,6 +34,7 @@
 #include <regex.h>
 
 #define UTILS_MATCH_FLAGS_EXCLUDE_REGEX 0x02
+#define UTILS_MATCH_FLAGS_REGEX 0x04
 
 struct cu_match_s {
   regex_t regex;
@@ -234,6 +235,7 @@ match_create_callback(const char *regex, const char *excluderegex,
     sfree(obj);
     return (NULL);
   }
+  obj->flags |= UTILS_MATCH_FLAGS_REGEX;
 
   if (excluderegex && strcmp(excluderegex, "") != 0) {
     status = regcomp(&obj->excluderegex, excluderegex, REG_EXTENDED);
@@ -301,6 +303,10 @@ void match_destroy(cu_match_t *obj) {
   if (obj == NULL)
     return;
 
+  if (obj->flags & UTILS_MATCH_FLAGS_REGEX)
+    regfree(&obj->regex);
+  if (obj->flags & UTILS_MATCH_FLAGS_EXCLUDE_REGEX)
+    regfree(&obj->excluderegex);
   if ((obj->user_data != NULL) && (obj->free != NULL))
     (*obj->free)(obj->user_data);