diff options
author | Jenkins2 <jenkins2@gerrit.asterisk.org> | 2017-11-07 15:27:26 -0600 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-11-07 15:27:26 -0600 |
commit | bd67e63434ce2955cacfd19f4391355e046d6aa1 (patch) | |
tree | 35414499ad1dd63495dc42ab1a363543012d3d7d /main | |
parent | 64fa84b2ca2d67288400a8a2094cf076cb54c478 (diff) | |
parent | 5762f72425c74c7277462dd4f74a90a3755931ab (diff) |
Merge "PBX: Handle errors from AST_VECTOR_APPEND."
Diffstat (limited to 'main')
-rw-r--r-- | main/pbx.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/main/pbx.c b/main/pbx.c index 2366b72b0..b5602b55c 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -6692,7 +6692,11 @@ int ast_context_add_include2(struct ast_context *con, const char *value, } /* ... include new context into context list, unlock, return */ - AST_VECTOR_APPEND(&con->includes, new_include); + if (AST_VECTOR_APPEND(&con->includes, new_include)) { + include_free(new_include); + ast_unlock_context(con); + return -1; + } ast_verb(3, "Including context '%s' in context '%s'\n", ast_get_include_name(new_include), ast_get_context_name(con)); @@ -6754,7 +6758,11 @@ int ast_context_add_switch2(struct ast_context *con, const char *value, } /* ... sw new context into context list, unlock, return */ - AST_VECTOR_APPEND(&con->alts, new_sw); + if (AST_VECTOR_APPEND(&con->alts, new_sw)) { + sw_free(new_sw); + ast_unlock_context(con); + return -1; + } ast_verb(3, "Including switch '%s/%s' in context '%s'\n", ast_get_switch_name(new_sw), ast_get_switch_data(new_sw), ast_get_context_name(con)); @@ -6842,7 +6850,11 @@ int ast_context_add_ignorepat2(struct ast_context *con, const char *value, const return -1; } } - AST_VECTOR_APPEND(&con->ignorepats, ignorepat); + if (AST_VECTOR_APPEND(&con->ignorepats, ignorepat)) { + ignorepat_free(ignorepat); + ast_unlock_context(con); + return -1; + } ast_unlock_context(con); return 0; |