core: Fix a memory leak in app.c from an early return
authorJonathan Rose <jrose@digium.com>
Mon, 22 Oct 2012 20:19:51 +0000 (20:19 +0000)
committerJonathan Rose <jrose@digium.com>
Mon, 22 Oct 2012 20:19:51 +0000 (20:19 +0000)
ast_app_group_match_get_count allocates memory with the regcomp
function and we previously forgot to free it when bailing out
due to a regex compilation failure against category.

(closes issue AST-1018)
Reported by: Guenther Kelleter
Patches:
regcomp_memleak.diff uploaded by Guenther Kelleter (license 6372)
........

Merged revisions 375299 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 375300 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 375301 from http://svn.asterisk.org/svn/asterisk/branches/11

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

main/app.c

index e3a5f02..208db4b 100644 (file)
@@ -1562,6 +1562,7 @@ int ast_app_group_match_get_count(const char *groupmatch, const char *category)
 
        if (!ast_strlen_zero(category) && regcomp(&regexbuf_category, category, REG_EXTENDED | REG_NOSUB)) {
                ast_log(LOG_ERROR, "Regex compile failed on: %s\n", category);
 
        if (!ast_strlen_zero(category) && regcomp(&regexbuf_category, category, REG_EXTENDED | REG_NOSUB)) {
                ast_log(LOG_ERROR, "Regex compile failed on: %s\n", category);
+               regfree(&regexbuf_group);
                return 0;
        }
 
                return 0;
        }