From 34b16e2d364cf86960eac09e451dae6ae8792e08 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 4 Dec 2013 14:29:35 +0100 Subject: [PATCH] avformat/utils: reorder operations in update_wrap_reference() prevents a integer overflow Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index f33704d4c6..dcb94e8437 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -887,12 +887,11 @@ static int update_wrap_reference(AVFormatContext *s, AVStream *st, int stream_in if (ref == AV_NOPTS_VALUE) ref = pkt->pts; - if (ref == AV_NOPTS_VALUE) + if (st->pts_wrap_reference != AV_NOPTS_VALUE || st->pts_wrap_bits >= 63 || ref == AV_NOPTS_VALUE || !s->correct_ts_overflow) return 0; ref &= (1LL<pts_wrap_bits)-1; - if (s->correct_ts_overflow && st->pts_wrap_bits < 63 && - st->pts_wrap_reference == AV_NOPTS_VALUE) { + { int i; // reference time stamp should be 60 s before first time stamp @@ -945,7 +944,6 @@ static int update_wrap_reference(AVFormatContext *s, AVStream *st, int stream_in } return 1; } - return 0; } static void update_initial_timestamps(AVFormatContext *s, int stream_index,