diff --git a/main/config.c b/main/config.c index 6edee56164..59d5163342 100644 --- a/main/config.c +++ b/main/config.c @@ -1426,6 +1426,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; } @@ -1454,6 +1455,9 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat, base = category_get(cfg, cur, 1); 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; }