mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 10:33:13 +00:00
res/res_rtp_asterisk: Fix crash in debug from RTCP reports without report block
When RTCP debugging was enabled, an RTCP report without a report block would cause a crash. This was due to the verbose output not checking to see if the report_block pointer was NULl before dereferencing it. This patch adds the necessary check to prevent printing any verbose output if the far side hasn't provided us the information they should have. ASTERISK-24791 #close Reported by: JoshE Tested by: JoshE git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -3056,14 +3056,16 @@ static int ast_rtcp_write_report(struct ast_rtp_instance *instance, int sr)
|
|||||||
ast_verbose(" Sent packets: %u\n", rtcp_report->sender_information.packet_count);
|
ast_verbose(" Sent packets: %u\n", rtcp_report->sender_information.packet_count);
|
||||||
ast_verbose(" Sent octets: %u\n", rtcp_report->sender_information.octet_count);
|
ast_verbose(" Sent octets: %u\n", rtcp_report->sender_information.octet_count);
|
||||||
}
|
}
|
||||||
ast_verbose(" Report block:\n");
|
if (report_block) {
|
||||||
ast_verbose(" Their SSRC: %u\n", report_block->source_ssrc);
|
ast_verbose(" Report block:\n");
|
||||||
ast_verbose(" Fraction lost: %d\n", report_block->lost_count.fraction);
|
ast_verbose(" Their SSRC: %u\n", report_block->source_ssrc);
|
||||||
ast_verbose(" Cumulative loss: %u\n", report_block->lost_count.packets);
|
ast_verbose(" Fraction lost: %d\n", report_block->lost_count.fraction);
|
||||||
ast_verbose(" Highest seq no: %u\n", report_block->highest_seq_no);
|
ast_verbose(" Cumulative loss: %u\n", report_block->lost_count.packets);
|
||||||
ast_verbose(" IA jitter: %.4f\n", (double)report_block->ia_jitter / rate);
|
ast_verbose(" Highest seq no: %u\n", report_block->highest_seq_no);
|
||||||
ast_verbose(" Their last SR: %u\n", report_block->lsr);
|
ast_verbose(" IA jitter: %.4f\n", (double)report_block->ia_jitter / rate);
|
||||||
ast_verbose(" DLSR: %4.4f (sec)\n\n", (double)(report_block->dlsr / 65536.0));
|
ast_verbose(" Their last SR: %u\n", report_block->lsr);
|
||||||
|
ast_verbose(" DLSR: %4.4f (sec)\n\n", (double)(report_block->dlsr / 65536.0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ast_rtp_instance_get_local_address(instance, &local_address);
|
ast_rtp_instance_get_local_address(instance, &local_address);
|
||||||
|
Reference in New Issue
Block a user