From: Anthony Minessale Date: Tue, 17 Feb 2009 17:04:45 +0000 (+0000) Subject: FSCORE-301 X-Git-Tag: v1.0.3~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a3ae344f3d9ab77cdf277b8752925df29640a620;p=thirdparty%2Ffreeswitch.git FSCORE-301 git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12100 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/libs/sofia-sip/libsofia-sip-ua/soa/soa.c b/libs/sofia-sip/libsofia-sip-ua/soa/soa.c index d75b079931..f2b4948031 100644 --- a/libs/sofia-sip/libsofia-sip-ua/soa/soa.c +++ b/libs/sofia-sip/libsofia-sip-ua/soa/soa.c @@ -2452,31 +2452,36 @@ soa_init_sdp_connection_with_session(soa_session_t *ss, sdp_connection_t const *mc; if (m->m_rejected) - continue; - - for (mc = m->m_connections; mc; mc = mc->c_next) { - for (li = res; li; li = li->li_next) { - if (!su_casematch(li->li_canonname, sdp->sdp_connection->c_address)) - continue; + continue; + + if (sdp && sdp->sdp_connection && sdp->sdp_connection->c_address) { + for (mc = m->m_connections; mc; mc = mc->c_next) { + for (li = res; li; li = li->li_next) { + if (!li->li_canonname || !su_casematch(li->li_canonname, sdp->sdp_connection->c_address)) { + continue; + } #if HAVE_SIN6 - if (li->li_family == AF_INET6) { - if (ip6 > ip4) - break; - else if (!li6) - li6 = li; /* Best IP6 address */ - } + if (li->li_family == AF_INET6) { + if (ip6 > ip4) + break; + else if (!li6) + li6 = li; /* Best IP6 address */ + } #endif - else if (li->li_family == AF_INET) { - if (ip4 > ip6) - break; - else if (!li4) - li4 = li; /* Best IP4 address */ + else if (li->li_family == AF_INET) { + if (ip4 > ip6) { + break; + } else if (!li4) { + li4 = li; /* Best IP4 address */ + } + } + } + } + } + + if (li) { + break; } - } - } - - if (li) - break; } if (li == NULL && ip4)