mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 20:50:41 +00:00
freetdm: fixing a potential crash on a rarely happened situation
This commit is contained in:
parent
3c4fdca9e0
commit
19f01bf50a
@ -1314,6 +1314,10 @@ static ftdm_status_t handle_show_status(ftdm_stream_handle_t *stream, int span,
|
|||||||
}else {
|
}else {
|
||||||
stream->write_function(stream, "relay=N");
|
stream->write_function(stream, "relay=N");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SMG_RELAY_DBG
|
||||||
|
stream->write_function(stream, "| flag=0x%llx", ftdmchan->flags);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SMG_RELAY_DBG
|
#ifdef SMG_RELAY_DBG
|
||||||
|
@ -614,20 +614,22 @@ static void ftdm_sangoma_ss7_process_stack_event (sngss7_event_data_t *sngss7_ev
|
|||||||
break;
|
break;
|
||||||
case SNGSS7_REL_CFM_EVENT:
|
case SNGSS7_REL_CFM_EVENT:
|
||||||
{
|
{
|
||||||
ftdm_channel_t *peer_chan = sngss7_info->peer_data->ftdmchan;
|
if (sngss7_info->peer_data) {
|
||||||
ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN);
|
ftdm_channel_t *peer_chan = sngss7_info->peer_data->ftdmchan;
|
||||||
if (peer_chan) {
|
ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DOWN);
|
||||||
/* we need to unlock our chan or we risk deadlock */
|
if (peer_chan) {
|
||||||
ftdm_channel_advance_states(ftdmchan);
|
/* we need to unlock our chan or we risk deadlock */
|
||||||
ftdm_channel_unlock(ftdmchan);
|
ftdm_channel_advance_states(ftdmchan);
|
||||||
|
ftdm_channel_unlock(ftdmchan);
|
||||||
|
|
||||||
ftdm_channel_lock(peer_chan);
|
ftdm_channel_lock(peer_chan);
|
||||||
if (peer_chan->state != FTDM_CHANNEL_STATE_DOWN) {
|
if (peer_chan->state != FTDM_CHANNEL_STATE_DOWN) {
|
||||||
ftdm_set_state(peer_chan, FTDM_CHANNEL_STATE_DOWN);
|
ftdm_set_state(peer_chan, FTDM_CHANNEL_STATE_DOWN);
|
||||||
|
}
|
||||||
|
ftdm_channel_unlock(peer_chan);
|
||||||
|
|
||||||
|
ftdm_channel_lock(ftdmchan);
|
||||||
}
|
}
|
||||||
ftdm_channel_unlock(peer_chan);
|
|
||||||
|
|
||||||
ftdm_channel_lock(ftdmchan);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user