commit 1899d4cbc8368bc7df92549863ba0f8f9e6e7fb4
Author: Joshua Colp <jcolp@digium.com>
Date:   Thu Nov 30 16:12:55 2017 +0000

    AST-2017-012: Place single RTCP report block at beginning of report.
    
    When the RTCP code was transitioned over to Stasis a code change
    was made to keep track of how many reports are present. This count
    controlled where report blocks were placed in the RTCP report.
    
    If a compound RTCP packet was received this logic would incorrectly
    place a report block in the wrong location resulting in a write
    to an invalid location.
    
    This change removes this counting logic and always places the report
    block at the first position. If in the future multiple reports are
    supported the logic can be extended but for now keeping a count
    serves no purpose.
    
    ASTERISK-27382
    ASTERISK-27429
    
    Change-Id: Iad6c8a9985c4b608ef493e19c421211615485116

diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 16eb7dddf1..2f76468350 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -5169,7 +5169,6 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c
 	unsigned int first_word;
 	/*! True if we have seen an acceptable SSRC to learn the remote RTCP address */
 	unsigned int ssrc_seen;
-	int report_counter = 0;
 	struct ast_rtp_rtcp_report_block *report_block;
 	struct ast_frame *f = &ast_null_frame;
 
@@ -5413,7 +5412,7 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c
 					}
 					return &ast_null_frame;
 				}
-				rtcp_report->report_block[report_counter] = report_block;
+				rtcp_report->report_block[0] = report_block;
 				report_block->source_ssrc = ntohl(rtcpheader[i]);
 				report_block->lost_count.packets = ntohl(rtcpheader[i + 1]) & 0x00ffffff;
 				report_block->lost_count.fraction = ((ntohl(rtcpheader[i + 1]) & 0xff000000) >> 24);
@@ -5450,7 +5449,6 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c
 					ast_verbose("  DLSR: %4.4f (sec)\n",(double)report_block->dlsr / 65536.0);
 					ast_verbose("  RTT: %4.4f(sec)\n", rtp->rtcp->rtt);
 				}
-				report_counter++;
 			}
 			/* If and when we handle more than one report block, this should occur outside
 			 * this loop.
