You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	resample: allocate a large enough output buffer
Fixes invalid writes and crashes when doing conversions such as stereo to 5.1 channels or sample rate conversion on 5.1 channels.
This commit is contained in:
		| @@ -272,11 +272,13 @@ int audio_resample(ReSampleContext *s, short *output, short *input, int nb_sampl | ||||
|     lenout = 4 * nb_samples * s->ratio + 16; | ||||
|  | ||||
|     if (s->sample_fmt[1] != AV_SAMPLE_FMT_S16) { | ||||
|         int out_size = lenout * av_get_bytes_per_sample(s->sample_fmt[1]) * | ||||
|                        s->output_channels; | ||||
|         output_bak = output; | ||||
|  | ||||
|         if (!s->buffer_size[1] || s->buffer_size[1] < lenout) { | ||||
|         if (!s->buffer_size[1] || s->buffer_size[1] < out_size) { | ||||
|             av_free(s->buffer[1]); | ||||
|             s->buffer_size[1] = lenout; | ||||
|             s->buffer_size[1] = out_size; | ||||
|             s->buffer[1] = av_malloc(s->buffer_size[1]); | ||||
|             if (!s->buffer[1]) { | ||||
|                 av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user