Merge "channel.c: Fix off nominal channel allocation failure path."

This commit is contained in:
Joshua Colp 2018-05-24 05:18:16 -05:00 committed by Gerrit Code Review
commit 7e655b26d1
1 changed files with 10 additions and 9 deletions

View File

@ -801,7 +801,16 @@ __ast_channel_alloc_ap(int needqueue, int state, const char *cid_num, const char
ast_channel_stage_snapshot(tmp);
if (!(nativeformats = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
/*
* Init file descriptors to unopened state so
* the destructor can know not to close them.
*/
ast_channel_timingfd_set(tmp, -1);
ast_channel_internal_alertpipe_clear(tmp);
ast_channel_internal_fd_clear_all(tmp);
nativeformats = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT);
if (!nativeformats) {
/*
* Aborting the channel creation. We do not need to complete staging
* the channel snapshot because the channel has not been finalized or
@ -819,14 +828,6 @@ __ast_channel_alloc_ap(int needqueue, int state, const char *cid_num, const char
ast_channel_set_writeformat(tmp, ast_format_none);
ast_channel_set_readformat(tmp, ast_format_none);
/*
* Init file descriptors to unopened state so
* the destructor can know not to close them.
*/
ast_channel_timingfd_set(tmp, -1);
ast_channel_internal_alertpipe_clear(tmp);
ast_channel_internal_fd_clear_all(tmp);
if (!(schedctx = ast_sched_context_create())) {
ast_log(LOG_WARNING, "Channel allocation failed: Unable to create schedule context\n");
/* See earlier channel creation abort comment above. */