From: Matthew Jordan Date: Wed, 4 Jan 2012 22:19:34 +0000 (+0000) Subject: Fix for ConfBridge config parser unlocking channel mutex too many times X-Git-Tag: 10.2.0-rc1~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12d2720aa4b96e2af23268a67e1a0557ab174417;p=thirdparty%2Fasterisk.git Fix for ConfBridge config parser unlocking channel mutex too many times When looking up a ConfBridge profile, the config parser would, if it found a channel datastore on the channel requesting the bridge profile, unlock the channel mutex twice. Since that's a little aggressive, it now only unlocks it once. (closes issue ASTERISK-19042) Reported by: Matt Jordan Tested by: Matt Jordan Patches: 19042 uploaded by David Vossel (license 5628) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@349619 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/confbridge/conf_config_parser.c b/apps/confbridge/conf_config_parser.c index 73c9d69a58..a92495c3c6 100644 --- a/apps/confbridge/conf_config_parser.c +++ b/apps/confbridge/conf_config_parser.c @@ -1312,8 +1312,9 @@ const struct user_profile *conf_find_user_profile(struct ast_channel *chan, cons conf_user_profile_copy(result, &b_data->u_profile); return result; } + } else { + ast_channel_unlock(chan); } - ast_channel_unlock(chan); } if (ast_strlen_zero(user_profile_name)) { @@ -1362,8 +1363,9 @@ const struct bridge_profile *conf_find_bridge_profile(struct ast_channel *chan, conf_bridge_profile_copy(result, &b_data->b_profile); return result; } + } else { + ast_channel_unlock(chan); } - ast_channel_unlock(chan); } if (ast_strlen_zero(bridge_profile_name)) { bridge_profile_name = DEFAULT_BRIDGE_PROFILE;