You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	vaapi: do not assert on value read from input bitstream
User-provided data should never trigger an assert; return error instead. Also fix an instance of get_bits where get_bits_long should have been used. This eliminates the following warning: libavcodec/vaapi_mpeg2.c:112:14: warning: variable 'start_code' set but not used
This commit is contained in:
		| @@ -109,14 +109,14 @@ static int vaapi_mpeg2_decode_slice(AVCodecContext *avctx, const uint8_t *buffer | ||||
|     MpegEncContext * const s = avctx->priv_data; | ||||
|     VASliceParameterBufferMPEG2 *slice_param; | ||||
|     GetBitContext gb; | ||||
|     uint32_t start_code, quantiser_scale_code, intra_slice_flag, macroblock_offset; | ||||
|     uint32_t quantiser_scale_code, intra_slice_flag, macroblock_offset; | ||||
|  | ||||
|     av_dlog(avctx, "vaapi_mpeg2_decode_slice(): buffer %p, size %d\n", buffer, size); | ||||
|  | ||||
|     /* Determine macroblock_offset */ | ||||
|     init_get_bits(&gb, buffer, 8 * size); | ||||
|     start_code = get_bits(&gb, 32); | ||||
|     assert((start_code & 0xffffff00) == 0x00000100); | ||||
|     if (get_bits_long(&gb, 32) >> 8 != 1) /* start code */ | ||||
|         return AVERROR_INVALIDDATA; | ||||
|     quantiser_scale_code = get_bits(&gb, 5); | ||||
|     intra_slice_flag = get_bits1(&gb); | ||||
|     if (intra_slice_flag) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user