avformat/dump: Fix integer overflow in av_dump_format()

Fixes part of mozilla bug 1229167

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8e7f4520226d2d9ad6a58ad6c32d1455a8b244b2)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2015-12-01 12:40:32 +01:00
parent 2fbf723585
commit 3d69716bae

View File

@ -496,7 +496,7 @@ void av_dump_format(AVFormatContext *ic, int index,
av_log(NULL, AV_LOG_INFO, " Duration: "); av_log(NULL, AV_LOG_INFO, " Duration: ");
if (ic->duration != AV_NOPTS_VALUE) { if (ic->duration != AV_NOPTS_VALUE) {
int hours, mins, secs, us; int hours, mins, secs, us;
int64_t duration = ic->duration + 5000; int64_t duration = ic->duration + (ic->duration <= INT64_MAX - 5000 ? 5000 : 0);
secs = duration / AV_TIME_BASE; secs = duration / AV_TIME_BASE;
us = duration % AV_TIME_BASE; us = duration % AV_TIME_BASE;
mins = secs / 60; mins = secs / 60;