From: Jaroslav Kysela Date: Thu, 14 Sep 2017 09:45:33 +0000 (+0200) Subject: satip server: the data must for satip_rtp_tcp_data() must be allocated, fixes #4573 X-Git-Tag: v4.2.4~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b16fb196cd98ec6dec686c0b8df2059d6ddb5f55;p=thirdparty%2Ftvheadend.git satip server: the data must for satip_rtp_tcp_data() must be allocated, fixes #4573 --- diff --git a/src/satip/rtp.c b/src/satip/rtp.c index 2c4f8f307..cdb1abe43 100644 --- a/src/satip/rtp.c +++ b/src/satip/rtp.c @@ -885,7 +885,7 @@ satip_rtcp_thread(void *aux) { satip_rtp_session_t *rtp; int64_t us; - uint8_t msg[RTCP_PAYLOAD+1]; + uint8_t msg[RTCP_PAYLOAD+1], *msg1; char addrbuf[50]; int r, len, err; @@ -910,8 +910,15 @@ satip_rtcp_thread(void *aux) tvhtrace(LS_SATIPS, "RTCP send to %s:%d : %s", addrbuf, ntohs(IP_PORT(rtp->peer2)), msg + 16); } if (rtp->port == RTSP_TCP_DATA) { - err = satip_rtp_tcp_data(rtp, 1, msg, len); - r = err ? -1 : 0; + msg1 = malloc(len); + if (msg1) { + memcpy(msg1, msg, len); + err = satip_rtp_tcp_data(rtp, 1, msg1, len); + r = err ? -1 : 0; + } else { + r = -1; + err = ENOMEM; + } } else { r = sendto(rtp->fd_rtcp, msg, len, 0, (struct sockaddr*)&rtp->peer2,