chan_iax2: Fix a segfault introduced by call ID logging
authorJonathan Rose <jrose@digium.com>
Fri, 20 Jul 2012 19:36:05 +0000 (19:36 +0000)
committerJonathan Rose <jrose@digium.com>
Fri, 20 Jul 2012 19:36:05 +0000 (19:36 +0000)
Didn't previously check that a non NULL IAX channel was stored in the array
at the requested position before attempting iax_pvt_callid_get

(closes issue ASTERISK-20145)
Reported by: Birger "WIMPy" Harzenetter

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370335 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 8efad88..70318a1 100644 (file)
@@ -10170,7 +10170,7 @@ static int socket_process_helper(struct iax2_thread *thread)
        if (fr->callno > 0) {
                struct ast_callid *mount_callid;
                ast_mutex_lock(&iaxsl[fr->callno]);
-               if ((mount_callid = iax_pvt_callid_get(fr->callno))) {
+               if (iaxs[fr->callno] && ((mount_callid = iax_pvt_callid_get(fr->callno)))) {
                        /* Bind to thread */
                        ast_callid_threadassoc_add(mount_callid);
                        ast_callid_unref(mount_callid);