diff options
Diffstat (limited to 'libavformat/avidec.c')
-rw-r--r-- | libavformat/avidec.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 2216b35582..3526700ba7 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -643,12 +643,13 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt) { AVIContext *avi = s->priv_data; ByteIOContext *pb = s->pb; - int n, d[8], size; + int n, d[8]; + unsigned int size; int64_t i, sync; void* dstr; if (CONFIG_DV_DEMUXER && avi->dv_demux) { - size = dv_get_packet(avi->dv_demux, pkt); + int size = dv_get_packet(avi->dv_demux, pkt); if (size >= 0) return size; } @@ -788,7 +789,7 @@ resync: n= get_stream_idx(d+2); //av_log(s, AV_LOG_DEBUG, "%X %X %X %X %X %X %X %X %"PRId64" %d %d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], i, size, n); - if(i + size > avi->fsize || d[0]<0) + if(i + (uint64_t)size > avi->fsize || d[0]<0) continue; //parse ix## |