OSDN Git Service

avformat/utils: Fix "libavformat/utils.c:927:35: runtime error: signed integer overfl...
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 3 Dec 2015 20:54:43 +0000 (21:54 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 3 Dec 2015 23:44:06 +0000 (00:44 +0100)
Fixes Mozilla bug 1229205

Found-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/utils.c

index e93a192..1103a64 100644 (file)
@@ -912,7 +912,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index,
     AVStream *st       = s->streams[stream_index];
     AVPacketList *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue;
     int64_t pts_buffer[MAX_REORDER_DELAY+1];
-    int64_t shift;
+    uint64_t shift;
     int i, delay;
 
     if (st->first_dts != AV_NOPTS_VALUE ||
@@ -924,7 +924,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index,
     delay         = st->codec->has_b_frames;
     st->first_dts = dts - (st->cur_dts - RELATIVE_TS_BASE);
     st->cur_dts   = dts;
-    shift         = st->first_dts - RELATIVE_TS_BASE;
+    shift         = (uint64_t)st->first_dts - RELATIVE_TS_BASE;
 
     for (i = 0; i<MAX_REORDER_DELAY+1; i++)
         pts_buffer[i] = AV_NOPTS_VALUE;