Handle chunks with the MSB in size set correctly that is unsigned.
Originally committed as revision 17491 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		@@ -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##
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user