aboutsummaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd/table.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/smtpd/table.c')
-rw-r--r--usr.sbin/smtpd/table.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.sbin/smtpd/table.c b/usr.sbin/smtpd/table.c
index 469eeee1..6d3292ce 100644
--- a/usr.sbin/smtpd/table.c
+++ b/usr.sbin/smtpd/table.c
@@ -470,6 +470,7 @@ table_regex_match(const char *string, const char *pattern)
{
regex_t preg;
int cflags = REG_EXTENDED|REG_NOSUB;
+ int ret;
if (strncmp(pattern, "(?i)", 4) == 0) {
cflags |= REG_ICASE;
@@ -479,7 +480,11 @@ table_regex_match(const char *string, const char *pattern)
if (regcomp(&preg, pattern, cflags) != 0)
return (0);
- if (regexec(&preg, string, 0, NULL, 0) != 0)
+ ret = regexec(&preg, string, 0, NULL, 0);
+
+ regfree(&preg);
+
+ if (ret != 0)
return (0);
return (1);