mpeg12: check for available bits to avoid an infinite loop
Signed-off-by: Jindrich Makovicka <makovick@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
		
							parent
							
								
									e5903e2972
								
							
						
					
					
						commit
						a85ce653fb
					
				@ -1658,7 +1658,7 @@ static int mpeg_decode_slice(MpegEncContext *s, int mb_y,
 | 
				
			|||||||
    if (mb_y == 0 && s->codec_tag == AV_RL32("SLIF")) {
 | 
					    if (mb_y == 0 && s->codec_tag == AV_RL32("SLIF")) {
 | 
				
			||||||
        skip_bits1(&s->gb);
 | 
					        skip_bits1(&s->gb);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        for (;;) {
 | 
					        while (get_bits_left(&s->gb) > 0) {
 | 
				
			||||||
            int code = get_vlc2(&s->gb, mbincr_vlc.table, MBINCR_VLC_BITS, 2);
 | 
					            int code = get_vlc2(&s->gb, mbincr_vlc.table, MBINCR_VLC_BITS, 2);
 | 
				
			||||||
            if (code < 0) {
 | 
					            if (code < 0) {
 | 
				
			||||||
                av_log(s->avctx, AV_LOG_ERROR, "first mb_incr damaged\n");
 | 
					                av_log(s->avctx, AV_LOG_ERROR, "first mb_incr damaged\n");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user