summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-04 14:29:35 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-04 14:36:35 +0100
commit34b16e2d364cf86960eac09e451dae6ae8792e08 (patch)
tree26f441f62608d31cc0f15a92702a8b27aa6afc55 /libavformat
parentf1783c05f1398b7a08f16f6aafbcf38a5323e770 (diff)
avformat/utils: reorder operations in update_wrap_reference()
prevents a integer overflow Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/utils.c6
1 files 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<<st->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,