You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/sonic: More completely check sample_rate_index and channels
Fixes CID1271783 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -883,13 +883,19 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx) | ||||
|  | ||||
|     if (s->version >= 1) | ||||
|     { | ||||
|         int sample_rate_index; | ||||
|         s->channels = get_bits(&gb, 2); | ||||
|         s->samplerate = samplerate_table[get_bits(&gb, 4)]; | ||||
|         sample_rate_index = get_bits(&gb, 4); | ||||
|         if (sample_rate_index >= FF_ARRAY_ELEMS(samplerate_table)) { | ||||
|             av_log(avctx, AV_LOG_ERROR, "Invalid sample_rate_index %d\n", sample_rate_index); | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } | ||||
|         s->samplerate = samplerate_table[sample_rate_index]; | ||||
|         av_log(avctx, AV_LOG_INFO, "Sonicv2 chans: %d samprate: %d\n", | ||||
|             s->channels, s->samplerate); | ||||
|     } | ||||
|  | ||||
|     if (s->channels > MAX_CHANNELS) | ||||
|     if (s->channels > MAX_CHANNELS || s->channels < 1) | ||||
|     { | ||||
|         av_log(avctx, AV_LOG_ERROR, "Only mono and stereo streams are supported by now\n"); | ||||
|         return AVERROR_INVALIDDATA; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user