[Asterisk-code-review] channel.c: Fix off nominal channel allocation failure path. (asterisk[master])
Richard Mudgett
asteriskteam at digium.com
Tue May 22 17:41:42 CDT 2018
Richard Mudgett has uploaded this change for review. ( https://gerrit.asterisk.org/9036
Change subject: channel.c: Fix off nominal channel allocation failure path.
......................................................................
channel.c: Fix off nominal channel allocation failure path.
__ast_channel_alloc_ap() had a failure exit path that hadn't setup the fd
descriptors to -1 yet. The destructor would then attempt to close these
fd's that had never been opened.
Change-Id: Icf21093f36c60781e8cf6ee9d586536302af33e3
---
M main/channel.c
1 file changed, 10 insertions(+), 9 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/36/9036/1
diff --git a/main/channel.c b/main/channel.c
index a23dfa1..5a54845 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -801,7 +801,16 @@
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
@@ -818,14 +827,6 @@
ast_channel_set_rawreadformat(tmp, ast_format_none);
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");
--
To view, visit https://gerrit.asterisk.org/9036
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icf21093f36c60781e8cf6ee9d586536302af33e3
Gerrit-Change-Number: 9036
Gerrit-PatchSet: 1
Gerrit-Owner: Richard Mudgett <rmudgett at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180522/c271a63a/attachment.html>
More information about the asterisk-code-review
mailing list