diff --git a/Source/MediaInfo/Video/File_Mpeg4v.cpp b/Source/MediaInfo/Video/File_Mpeg4v.cpp index 224a24e3fd..b7d789ad30 100644 --- a/Source/MediaInfo/Video/File_Mpeg4v.cpp +++ b/Source/MediaInfo/Video/File_Mpeg4v.cpp @@ -418,7 +418,10 @@ void File_Mpeg4v::Streams_Fill() Fill(Stream_Video, 0, Video_Codec_Profile, Mpeg4v_Profile_Level(profile_and_level_indication)); } - if (frame_rate_code!=(int8u)-1) + // frame_rate_code is bitstream-controlled; the existing (int8u)-1 sentinel guard + // catches only 0xFF, so a crafted MPEG-4 Visual bitstream can index past the + // 16-entry Mpegv_frame_rate table -- see gh#2608. + if (frame_rate_code!=(int8u)-1 && frame_rate_code