avcodec_decode_audio4: check got_frame_ptr before handling initial skip
Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8a6449167a)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
			
			
This commit is contained in:
		@@ -1703,7 +1703,7 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
 | 
				
			|||||||
            av_log(avctx, AV_LOG_DEBUG, "skip %d samples due to side data\n",
 | 
					            av_log(avctx, AV_LOG_DEBUG, "skip %d samples due to side data\n",
 | 
				
			||||||
                   avctx->internal->skip_samples);
 | 
					                   avctx->internal->skip_samples);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (avctx->internal->skip_samples) {
 | 
					        if (avctx->internal->skip_samples && *got_frame_ptr) {
 | 
				
			||||||
            if(frame->nb_samples <= avctx->internal->skip_samples){
 | 
					            if(frame->nb_samples <= avctx->internal->skip_samples){
 | 
				
			||||||
                *got_frame_ptr = 0;
 | 
					                *got_frame_ptr = 0;
 | 
				
			||||||
                avctx->internal->skip_samples -= frame->nb_samples;
 | 
					                avctx->internal->skip_samples -= frame->nb_samples;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user