From e2630fcd516b8f794bf342d9fd267b0c905e79ce Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 18 Dec 2013 19:28:05 +0000 Subject: channels: Return allocated channels locked. This change makes ast_channel_alloc return allocated channels locked. By doing so no other thread can acquire, lock, and manipulate the channel before it is completely set up. (closes issue AST-1256) Review: https://reviewboard.asterisk.org/r/3067/ ........ Merged revisions 404204 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404210 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/pbx.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'main/pbx.c') diff --git a/main/pbx.c b/main/pbx.c index 6b9bd5ebf..726677f4a 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -10365,6 +10365,8 @@ static int pbx_outgoing_attempt(const char *type, struct ast_format_cap *cap, co snprintf(failed_reason, sizeof(failed_reason), "%d", ast_dial_reason(outgoing->dial, 0)); pbx_builtin_setvar_helper(failed, "REASON", failed_reason); + ast_channel_unlock(failed); + if (ast_pbx_run(failed)) { ast_log(LOG_ERROR, "Unable to run PBX on '%s'\n", ast_channel_name(failed)); ast_hangup(failed); -- cgit v1.2.3