Skip to content
Snippets Groups Projects
Commit 1a2f9657 authored by Richard Mudgett's avatar Richard Mudgett
Browse files

Merged revisions 256225 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r256225 | rmudgett | 2010-04-05 19:10:16 -0500 (Mon, 05 Apr 2010) | 5 lines
  
  DAHDI/PRI call to pri_channel_bridge() not protected by PRI lock.
  
  SWP-1231
  ABE-2163
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 3a4baef6
No related branches found
No related tags found
No related merge requests found
......@@ -6666,25 +6666,31 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
}
 
#ifdef PRI_2BCT
switch (p0->sig) {
case SIG_PRI_LIB_HANDLE_CASES:
q931c0 = ((struct sig_pri_chan *) (p0->sig_pvt))->call;
break;
default:
q931c0 = NULL;
break;
}
switch (p1->sig) {
case SIG_PRI_LIB_HANDLE_CASES:
q931c1 = ((struct sig_pri_chan *) (p1->sig_pvt))->call;
break;
default:
q931c1 = NULL;
break;
}
if (q931c0 && q931c1 && p0->transfer && p1->transfer && !triedtopribridge) {
if (!triedtopribridge) {
triedtopribridge = 1;
pri_channel_bridge(q931c0, q931c1);
if (p0->pri && p0->pri == p1->pri && p0->transfer && p1->transfer) {
ast_mutex_lock(&p0->pri->lock);
switch (p0->sig) {
case SIG_PRI_LIB_HANDLE_CASES:
q931c0 = ((struct sig_pri_chan *) (p0->sig_pvt))->call;
break;
default:
q931c0 = NULL;
break;
}
switch (p1->sig) {
case SIG_PRI_LIB_HANDLE_CASES:
q931c1 = ((struct sig_pri_chan *) (p1->sig_pvt))->call;
break;
default:
q931c1 = NULL;
break;
}
if (q931c0 && q931c1) {
pri_channel_bridge(q931c0, q931c1);
}
ast_mutex_unlock(&p0->pri->lock);
}
}
#endif
 
......
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