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##