From cc1e01d8b67f41659cb03f2500f18fe5df647ff1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 28 May 2016 23:51:35 +0200 Subject: [PATCH] avformat/utils: avoid overflow in update_stream_timings() with huge durations Fixes: usan_granule_overflow Found-by: Thomas Guilbert Signed-off-by: Michael Niedermayer (cherry picked from commit 2be3007ed55f1513bcae3d2a076e71878f48eb03) Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 7ed21b6762..fe684c352d 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2370,7 +2370,7 @@ static void update_stream_timings(AVFormatContext *ic) end_time1 = av_rescale_q_rnd(st->duration, st->time_base, AV_TIME_BASE_Q, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); - if (end_time1 != AV_NOPTS_VALUE) { + if (end_time1 != AV_NOPTS_VALUE && start_time1 <= INT64_MAX - end_time1) { end_time1 += start_time1; end_time = FFMAX(end_time, end_time1); }