From: Automerge script Date: Fri, 22 Jun 2012 20:22:26 +0000 (+0000) Subject: Merged revisions 369215 via svnmerge from X-Git-Tag: 10.7.0-digiumphones-rc1~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=41de4b94a13bd5b5c3d98e14ba52f9bcf713afed;p=thirdparty%2Fasterisk.git Merged revisions 369215 via svnmerge from file:///srv/subversion/repos/asterisk/branches/10 ................ r369215 | twilson | 2012-06-22 14:34:59 -0500 (Fri, 22 Jun 2012) | 9 lines Don't crash on a guest directmedia call A sip_pvt may not have relatedpeer set if a call doesn't match up with a peer. If there is no relatedpeer, there is no direct media ACL to apply, so just return that it is allowed. ........ Merged revisions 369214 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10-digiumphones@369234 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index dc5e1eaef4..bce2ad5bdd 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -30243,6 +30243,12 @@ static int apply_directmedia_ha(struct sip_pvt *p1, struct sip_pvt *p2, const ch ast_rtp_instance_get_remote_address(p1->rtp, &them); ast_rtp_instance_get_local_address(p1->rtp, &us); + /* If p2 is a guest call, there will be no peer. If there is no peer, there + * is no directmediaha, so go ahead and allow it */ + if (!p2->relatedpeer) { + return res; + } + if ((res = ast_apply_ha(p2->relatedpeer->directmediaha, &them)) == AST_SENSE_DENY) { const char *us_addr = ast_strdupa(ast_sockaddr_stringify(&us)); const char *them_addr = ast_strdupa(ast_sockaddr_stringify(&them));