diff options
-rw-r--r-- | main/app.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/main/app.c b/main/app.c index 7cb7e30b0..0619151d8 100644 --- a/main/app.c +++ b/main/app.c @@ -1095,8 +1095,10 @@ int ast_app_group_match_get_count(const char *groupmatch, const char *category) regex_t regexbuf_category; int count = 0; - if (ast_strlen_zero(groupmatch)) + if (ast_strlen_zero(groupmatch)) { + ast_log(LOG_NOTICE, "groupmatch empty\n"); return 0; + } /* if regex compilation fails, return zero matches */ if (regcomp(®exbuf_group, groupmatch, REG_EXTENDED | REG_NOSUB)) { @@ -1104,7 +1106,7 @@ int ast_app_group_match_get_count(const char *groupmatch, const char *category) return 0; } - if (regcomp(®exbuf_category, category, REG_EXTENDED | REG_NOSUB)) { + if (!ast_strlen_zero(category) && regcomp(®exbuf_category, category, REG_EXTENDED | REG_NOSUB)) { ast_log(LOG_ERROR, "Regex compile failed on: %s\n", category); return 0; } @@ -1118,7 +1120,9 @@ int ast_app_group_match_get_count(const char *groupmatch, const char *category) AST_RWLIST_UNLOCK(&groups); regfree(®exbuf_group); - regfree(®exbuf_category); + if (!ast_strlen_zero(category)) { + regfree(®exbuf_category); + } return count; } |