You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avfilter/af_aresample: Check ff_all_* for allocation failures
Fixes: signal_sigabrt_7ffff70eccc9_498_divx502.avi with memlimit 1572864 Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		| @@ -87,15 +87,24 @@ static int query_formats(AVFilterContext *ctx) | |||||||
|     AVFilterLink *inlink  = ctx->inputs[0]; |     AVFilterLink *inlink  = ctx->inputs[0]; | ||||||
|     AVFilterLink *outlink = ctx->outputs[0]; |     AVFilterLink *outlink = ctx->outputs[0]; | ||||||
|  |  | ||||||
|     AVFilterFormats        *in_formats      = ff_all_formats(AVMEDIA_TYPE_AUDIO); |     AVFilterFormats        *in_formats, *out_formats; | ||||||
|     AVFilterFormats        *out_formats; |     AVFilterFormats        *in_samplerates, *out_samplerates; | ||||||
|     AVFilterFormats        *in_samplerates  = ff_all_samplerates(); |     AVFilterChannelLayouts *in_layouts, *out_layouts; | ||||||
|     AVFilterFormats        *out_samplerates; |  | ||||||
|     AVFilterChannelLayouts *in_layouts      = ff_all_channel_counts(); |  | ||||||
|     AVFilterChannelLayouts *out_layouts; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     in_formats      = ff_all_formats(AVMEDIA_TYPE_AUDIO); | ||||||
|  |     if (!in_formats) | ||||||
|  |         return AVERROR(ENOMEM); | ||||||
|     ff_formats_ref  (in_formats,      &inlink->out_formats); |     ff_formats_ref  (in_formats,      &inlink->out_formats); | ||||||
|  |  | ||||||
|  |     in_samplerates  = ff_all_samplerates(); | ||||||
|  |     if (!in_samplerates) | ||||||
|  |         return AVERROR(ENOMEM); | ||||||
|     ff_formats_ref  (in_samplerates,  &inlink->out_samplerates); |     ff_formats_ref  (in_samplerates,  &inlink->out_samplerates); | ||||||
|  |  | ||||||
|  |     in_layouts      = ff_all_channel_counts(); | ||||||
|  |     if (!in_layouts) | ||||||
|  |          return AVERROR(ENOMEM); | ||||||
|     ff_channel_layouts_ref(in_layouts,      &inlink->out_channel_layouts); |     ff_channel_layouts_ref(in_layouts,      &inlink->out_channel_layouts); | ||||||
|  |  | ||||||
|     if(out_rate > 0) { |     if(out_rate > 0) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user