From 1662bd350a470f1cbd5c2cc9a0e1bfaa8543033f Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 16 Dec 2012 00:56:12 +0100 Subject: [PATCH] lavf: fix integer overflows Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index f627f884b0..88aacd4cdb 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -91,10 +91,10 @@ static int64_t wrap_timestamp(AVStream *st, int64_t timestamp) st->pts_wrap_reference != AV_NOPTS_VALUE && timestamp != AV_NOPTS_VALUE) { if (st->pts_wrap_behavior == AV_PTS_WRAP_ADD_OFFSET && timestamp < st->pts_wrap_reference) - return timestamp + (1LL<pts_wrap_bits); + return timestamp + (1ULL<pts_wrap_bits); else if (st->pts_wrap_behavior == AV_PTS_WRAP_SUB_OFFSET && timestamp >= st->pts_wrap_reference) - return timestamp - (1LL<pts_wrap_bits); + return timestamp - (1ULL<pts_wrap_bits); } return timestamp; } @@ -925,7 +925,7 @@ static AVPacketList *get_next_pkt(AVFormatContext *s, AVStream *st, AVPacketList static int update_wrap_reference(AVFormatContext *s, AVStream *st, int stream_index) { - if (s->correct_ts_overflow && st->pts_wrap_bits != 64 && + if (s->correct_ts_overflow && st->pts_wrap_bits < 63 && st->pts_wrap_reference == AV_NOPTS_VALUE && st->first_dts != AV_NOPTS_VALUE) { int i;