X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Futils_match.c;h=e8add2d800f130f0d9273d92065573e4ad503a40;hp=2e487b5933fc0b32525ea000fabca09e45b65772;hb=64b8150edec2271bb110f36e70915fdd87d9cac2;hpb=3fb6fe5776c14f41879249f4147c0b8924b39cc1 diff --git a/src/utils_match.c b/src/utils_match.c index 2e487b59..e8add2d8 100644 --- a/src/utils_match.c +++ b/src/utils_match.c @@ -34,6 +34,7 @@ #include #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); @@ -368,5 +374,3 @@ void *match_get_user_data(cu_match_t *obj) { return (NULL); return (obj->user_data); } /* void *match_get_user_data */ - -/* vim: set sw=2 sts=2 ts=8 : */