Mercurial > libavformat.hg
changeset 4552:da2be12b7b4b libavformat
Handle chunks with the MSB in size set correctly that is unsigned.
author | michael |
---|---|
date | Sat, 21 Feb 2009 20:11:34 +0000 |
parents | 68138429410b |
children | 86e891c581e0 |
files | avidec.c |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/avidec.c Sat Feb 21 17:29:25 2009 +0000 +++ b/avidec.c Sat Feb 21 20:11:34 2009 +0000 @@ -643,12 +643,13 @@ { 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 @@ 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##