From 1877b3159018a1da467427cd3051b4449cdd080d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 26 Jan 2026 02:43:25 +0100 Subject: [PATCH] avformat/mpegts: Check program_info_length Fixes: overread No testcase Found-by: Marton Balint Signed-off-by: Michael Niedermayer (cherry picked from commit 1fd718c6a9764d591e3d0b8d01511ce0d91a7f58) Signed-off-by: Michael Niedermayer --- libavformat/mpegts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index fa0b608e61..0758152b3a 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2335,7 +2335,8 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len av_log(ts->stream, AV_LOG_TRACE, "pcr_pid=0x%x\n", pcr_pid); program_info_length = get16(&p, p_end); - if (program_info_length < 0) + + if (program_info_length < 0 || (program_info_length & 0xFFF) > p_end - p) return; program_info_length &= 0xfff; while (program_info_length >= 2) {