From: Matthew Jordan Date: Tue, 22 Oct 2013 22:42:24 +0000 (+0000) Subject: res_rtp_asterisk: Fix crash when RTCP is not available during SSRC change X-Git-Tag: 11.7.0-rc1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0336f4b606708381aca706c60574e63d70339b9d;p=thirdparty%2Fasterisk.git res_rtp_asterisk: Fix crash when RTCP is not available during SSRC change In r400089, a patch was put in to correct erroneous RTCP statistic resets. Unfortunately, ast_rtp_read can be called on an RTP instance that does not have RTCP information. This patch prevents that crash by only resetting the statistics if we do actually have an RTCP instance. (issue AST-1174) (closes issue ASTERISK-22667) Reported by: John Bigelow ........ Merged revisions 401445 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@401446 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 480877ac22..0af845a68d 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -3664,10 +3664,12 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc rtp->rxcount = 0; rtp->cycles = 0; rtp->lastrxseqno = 0; - rtp->rtcp->expected_prior = 0; - rtp->rtcp->received_prior = 0; rtp->last_seqno = 0; rtp->last_end_timestamp = 0; + if (rtp->rtcp) { + rtp->rtcp->expected_prior = 0; + rtp->rtcp->received_prior = 0; + } } rtp->rxssrc = ssrc;