From 9996213c411e1d90940758d2c91b4d50517a30f2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 9 Aug 2008 16:12:50 +0200 Subject: free regex_t after use --- src/pulsecore/core-util.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 0717ff17..5841df0c 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -693,6 +693,7 @@ void pa_reset_priority(void) { static int match(const char *expr, const char *v) { int k; regex_t re; + int r; if (regcomp(&re, expr, REG_NOSUB|REG_EXTENDED) != 0) { errno = EINVAL; @@ -700,12 +701,18 @@ static int match(const char *expr, const char *v) { } if ((k = regexec(&re, v, 0, NULL, 0)) == 0) - return 1; + r = 1; else if (k == REG_NOMATCH) - return 0; + r = 0; + else + r = -1; - errno = EINVAL; - return -1; + regfree(&re); + + if (r < 0) + errno = EINVAL; + + return r; } /* Try to parse a boolean string value.*/ -- cgit