]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Resolve unit test failure that occurred on Mac OSX.
authorRussell Bryant <russell@russellbryant.com>
Sat, 13 Mar 2010 22:21:18 +0000 (22:21 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 13 Mar 2010 22:21:18 +0000 (22:21 +0000)
On Linux (glibc), regcomp() does not return an error for an empty string.
However, the version on OSX will return an error.  The test for channel group
matching by regex now passes on the mac, as well.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@252241 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/app.c

index 7cb7e30b05893fac894dd73e6b9eb8dc7fd2fd4a..0619151d8d13b242c2c4fb49590fd611df4008df 100644 (file)
@@ -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(&regexbuf_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(&regexbuf_category, category, REG_EXTENDED | REG_NOSUB)) {
+       if (!ast_strlen_zero(category) && regcomp(&regexbuf_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(&regexbuf_group);
-       regfree(&regexbuf_category);
+       if (!ast_strlen_zero(category)) {
+               regfree(&regexbuf_category);
+       }
 
        return count;
 }