[asterisk-commits] rmudgett: branch rmudgett/dahdi_ccss r240270 - /team/rmudgett/dahdi_ccss/chan...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jan 14 16:39:39 CST 2010
Author: rmudgett
Date: Thu Jan 14 16:39:37 2010
New Revision: 240270
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=240270
Log:
Made sig_pri_cc_agent_destructor() check if private_data is NULL.
Also it would be nice if the destructor did the unlock before freeing the
private data.
Modified:
team/rmudgett/dahdi_ccss/channels/chan_dahdi.c
team/rmudgett/dahdi_ccss/channels/sig_pri.c
Modified: team/rmudgett/dahdi_ccss/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/dahdi_ccss/channels/chan_dahdi.c?view=diff&rev=240270&r1=240269&r2=240270
==============================================================================
--- team/rmudgett/dahdi_ccss/channels/chan_dahdi.c (original)
+++ team/rmudgett/dahdi_ccss/channels/chan_dahdi.c Thu Jan 14 16:39:37 2010
@@ -4641,7 +4641,6 @@
set_actual_gain(p->subs[SUB_REAL].dfd, 0, p->rxgain, p->txgain, p->rxdrc, p->txdrc, p->law);
}
-/* BUGBUG need to figure out how to do a CC recall call. */
#ifdef HAVE_PRI
if (dahdi_sig_pri_lib_handles(p->sig)) {
struct dahdi_params ps;
Modified: team/rmudgett/dahdi_ccss/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/dahdi_ccss/channels/sig_pri.c?view=diff&rev=240270&r1=240269&r2=240270
==============================================================================
--- team/rmudgett/dahdi_ccss/channels/sig_pri.c (original)
+++ team/rmudgett/dahdi_ccss/channels/sig_pri.c Thu Jan 14 16:39:37 2010
@@ -5292,6 +5292,10 @@
* The core will call this function upon completion
* or failure of CC.
*
+ * \note
+ * The agent private_data pointer may be NULL if the agent
+ * constructor failed.
+ *
* \return Nothing
*/
void sig_pri_cc_agent_destructor(struct ast_cc_agent *agent)
@@ -5300,6 +5304,10 @@
int res;
cc_pvt = agent->private_data;
+ if (!cc_pvt) {
+ /* The agent constructor probably failed. */
+ return;
+ }
ast_mutex_lock(&cc_pvt->pri->lock);
res = -1;
if (cc_pvt->cc_request_response_pending) {
@@ -5308,8 +5316,8 @@
if (res) {
pri_cc_cancel(cc_pvt->pri->pri, cc_pvt->cc_id);
}
+ ast_mutex_unlock(&cc_pvt->pri->lock);
ast_free(cc_pvt);
- ast_mutex_unlock(&cc_pvt->pri->lock);
}
#endif /* defined(HAVE_PRI_CCSS) */
More information about the asterisk-commits
mailing list