diff --git a/mkvparser.cpp b/mkvparser.cpp index 6132d09..2fb553d 100644 --- a/mkvparser.cpp +++ b/mkvparser.cpp @@ -3970,7 +3970,13 @@ long SegmentInfo::Parse() { assert(pos <= stop); } + const double rollover_check = m_duration * m_timecodeScale; + if (rollover_check > LONG_LONG_MAX) + return E_FILE_FORMAT_INVALID; + assert(pos == stop); + if (pos != stop) + return E_FILE_FORMAT_INVALID; return 0; }