avformat/utils: Fix integer overflow in discontinuity check
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 12 Oct 2018 01:00:32 +0000 (03:00 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 18 Oct 2018 00:28:54 +0000 (02:28 +0200)
Fixes: signed integer overflow: 7738135736989908991 - -7954308516317364223 cannot be represented in type 'long'
Fixes: find_stream_info_usan

Reported-by: Thomas Guilbert <tguilbert@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/utils.c

index a8ac902..fa3699d 100644 (file)
@@ -3818,7 +3818,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
              * sequence, we treat it as a discontinuity. */
             if (st->info->fps_last_dts != AV_NOPTS_VALUE &&
                 st->info->fps_last_dts_idx > st->info->fps_first_dts_idx &&
-                (pkt->dts - st->info->fps_last_dts) / 1000 >
+                (pkt->dts - (uint64_t)st->info->fps_last_dts) / 1000 >
                 (st->info->fps_last_dts     - (uint64_t)st->info->fps_first_dts) /
                 (st->info->fps_last_dts_idx - st->info->fps_first_dts_idx)) {
                 av_log(ic, AV_LOG_WARNING,