]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
handle invalid disconnect with no matching zchan
authorMichael Jerris <mike@jerris.com>
Thu, 28 Feb 2008 17:23:10 +0000 (17:23 +0000)
committerMichael Jerris <mike@jerris.com>
Thu, 28 Feb 2008 17:23:10 +0000 (17:23 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@415 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/openzap/src/zap_isdn.c

index 31e17049d7423e5cf5f2fa3ffa0cffabf728d68c..39c904b32943f41c2c8d460e894a03ecc6459a44 100644 (file)
@@ -169,10 +169,13 @@ static L3INT zap_isdn_931_34(void *pvt, L2UCHAR *msg, L2INT mlen)
                        break;
                case Q931mes_DISCONNECT:
                        {
-                               Q931ie_Cause *cause = Q931GetIEPtr(gen->Cause, gen->buf);
-                               zchan->caller_data.hangup_cause = cause->Value;
-                               zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_TERMINATING);
-
+                               if (zchan) {
+                                       Q931ie_Cause *cause = Q931GetIEPtr(gen->Cause, gen->buf);
+                                       zchan->caller_data.hangup_cause = cause->Value;
+                                       zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_TERMINATING);
+                               } else {
+                                       zap_log(ZAP_LOG_CRIT, "Received Diconnect with no matching channel %d\n", chan_id);
+                               }
                        }
                        break;
                case Q931mes_ALERTING: