summaryrefslogtreecommitdiff
path: root/main/config.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2015-10-12 11:21:39 -0500
committerRichard Mudgett <rmudgett@digium.com>2015-10-12 13:05:14 -0500
commite14023ca3543d91bc108f8f21af0509c2a428e47 (patch)
tree03e0ac130007e9a52af91cc3d57707f23795ed6d /main/config.c
parenta99e821520405be48241f2a51c659cefd6939da2 (diff)
config.c: Fix off-nominal memory leak.
Change-Id: I06e346e9a5c63cc5071e7eda537310c4b43bffe0
Diffstat (limited to 'main/config.c')
-rw-r--r--main/config.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/main/config.c b/main/config.c
index 177849441..eefc8ca3b 100644
--- a/main/config.c
+++ b/main/config.c
@@ -1679,6 +1679,7 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat,
/* If there are options or categories to inherit from, process them now */
if (c) {
if (!(cur = strchr(c, ')'))) {
+ ast_category_destroy(newcat);
ast_log(LOG_WARNING, "parse error: no closing ')', line %d of %s\n", lineno, configfile);
return -1;
}
@@ -1707,10 +1708,16 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat,
base = ast_category_get(cfg, cur, "TEMPLATES=include");
if (!base) {
+ if (newcat) {
+ ast_category_destroy(newcat);
+ }
ast_log(LOG_WARNING, "Inheritance requested, but category '%s' does not exist, line %d of %s\n", cur, lineno, configfile);
return -1;
}
if (ast_category_inherit(*cat, base)) {
+ if (newcat) {
+ ast_category_destroy(newcat);
+ }
ast_log(LOG_ERROR, "Inheritence requested, but allocation failed\n");
return -1;
}