Commit 93072c9503 for freeswitch.com

commit 93072c9503ed737303d0995ddeb7db330f17bdde
Author: Andrey Volk <andywolk@gmail.com>
Date:   Thu Jul 25 21:46:40 2024 +0300

    [core] check_rtcp_and_ice() - stringop-overflow: Fix build on Debian Bookworm.

diff --git a/src/switch_rtp.c b/src/switch_rtp.c
index 1125e2f59b..3d9e2ae624 100644
--- a/src/switch_rtp.c
+++ b/src/switch_rtp.c
@@ -185,6 +185,10 @@ typedef struct {
 	char body[SWITCH_RTCP_MAX_BUF_LEN];
 } rtcp_msg_t;

+typedef struct {
+	switch_rtcp_hdr_t header;
+	uint32_t ssrc;
+} sdes_ssrc_t;

 typedef enum {
 	VAD_FIRE_TALK = (1 << 0),
@@ -2228,9 +2232,9 @@ static int check_rtcp_and_ice(switch_rtp_t *rtp_session)
 		struct switch_rtcp_report_block *rtcp_report_block = NULL;
 		switch_size_t rtcp_bytes = sizeof(struct switch_rtcp_hdr_s)+sizeof(uint32_t); /* add size of the packet header and the ssrc */
 		switch_rtcp_hdr_t *sdes;
+		sdes_ssrc_t *sdes_ssrc;
 		uint8_t *p;
 		switch_size_t sdes_bytes = sizeof(struct switch_rtcp_hdr_s);
-		uint32_t *ssrc;
 		switch_rtcp_sdes_unit_t *unit;
 		switch_bool_t is_only_receiver = FALSE;

@@ -2426,14 +2430,13 @@ static int check_rtcp_and_ice(switch_rtp_t *rtp_session)

 		//SDES + CNAME
 		p = (uint8_t *) (&rtp_session->rtcp_send_msg) + rtcp_bytes;
-		sdes = (switch_rtcp_hdr_t *) p;
+		sdes_ssrc = (sdes_ssrc_t *) p;
+		sdes = &sdes_ssrc->header;
 		sdes->version = 2;
 		sdes->type = _RTCP_PT_SDES;
 		sdes->count = 1;
 		sdes->p = 0;
-		p = (uint8_t *) (sdes) + sdes_bytes;
-		ssrc = (uint32_t *) p;
-		*ssrc = htonl(rtp_session->ssrc);
+		sdes_ssrc->ssrc = htonl(rtp_session->ssrc);
 		sdes_bytes += sizeof(uint32_t);