Skip to content
Snippets Groups Projects
Commit b5f8f56b authored by Kinsey Moore's avatar Kinsey Moore
Browse files

bridge_native_rtp: Fix crash involving masquerade

It is possible for a channel to be masqueraded out of a bridge which
means it may no longer have RTP glue to check upon leaving said bridge.
If this situation occurred (it's possible at least during dial and call
pickup) then Asterisk would crash. This change makes sure the glue is
checked before use.

(closes issue AST-1290)
Reported by: John Bigelow
........

Merged revisions 409900 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@409904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 15140883
No related branches found
No related tags found
No related merge requests found
......@@ -452,9 +452,19 @@ static void native_rtp_bridge_leave(struct ast_bridge *bridge, struct ast_bridge
native_rtp_bridge_framehook_detach(bridge_channel);
glue = ast_rtp_instance_get_glue(ast_channel_tech(bridge_channel->chan)->type);
if (!glue) {
return;
}
glue->get_rtp_info(bridge_channel->chan, &instance);
glue->get_vrtp_info ? glue->get_vrtp_info(bridge_channel->chan, &vinstance) : AST_RTP_GLUE_RESULT_FORBID;
glue->get_trtp_info ? glue->get_trtp_info(bridge_channel->chan, &tinstance) : AST_RTP_GLUE_RESULT_FORBID;
if (glue->get_vrtp_info) {
glue->get_vrtp_info(bridge_channel->chan, &vinstance);
}
if (glue->get_trtp_info) {
glue->get_trtp_info(bridge_channel->chan, &tinstance);
}
/* Tear down P2P bridges */
if (instance) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment