Sophie

Sophie

distrib > Mageia > 9 > x86_64 > by-pkgid > 877f303ae546d7064853958698c3d075 > files > 4

avidemux-2.8.1-11.mga9.tainted.src.rpm

From 1715cdd0c8503f48cee2048fc45cd24bbe60251b Mon Sep 17 00:00:00 2001
From: eumagga0x2a <eumagga0x2a@users.noreply.github.com>
Date: Mon, 3 Oct 2022 12:44:01 +0200
Subject: [PATCH 04/10] [demuxers/MpegTS] Add additional protection against
 overflow

---
 avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp b/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp
index b27a0397b..a6aa630eb 100644
--- a/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp
+++ b/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp
@@ -350,6 +350,7 @@ bool tsPacket::getNextPSI(uint32_t pid,TS_PSIpacketInfo *psi)
     uint32_t dummy;
     TSpacketInfo pkt;
     uint8_t *ptr = psi->payload;
+    uint8_t *end = ptr + TS_PSI_MAX_LEN;
 nextPack2:
     if(nbRetries && pkt.startAt-startOffset>(1<<25)) // max. 32 MiB
     {
@@ -451,6 +452,7 @@ nextPack2:
     while(true)
     {
         int chunk = (pkt.payloadSize > remaining)? remaining : pkt.payloadSize;
+        ADM_assert(ptr + chunk < end);
         memcpy(ptr, pkt.payload, chunk); // we keep PSI table header here
         ptr += chunk;
         remaining -= chunk;
-- 
2.30.4