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>
(cherry picked from commit 2ea8a48083)
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 *outlink = ctx->outputs[0];
 | 
			
		||||
 | 
			
		||||
    AVFilterFormats        *in_formats      = ff_all_formats(AVMEDIA_TYPE_AUDIO);
 | 
			
		||||
    AVFilterFormats        *out_formats;
 | 
			
		||||
    AVFilterFormats        *in_samplerates  = ff_all_samplerates();
 | 
			
		||||
    AVFilterFormats        *out_samplerates;
 | 
			
		||||
    AVFilterChannelLayouts *in_layouts      = ff_all_channel_counts();
 | 
			
		||||
    AVFilterChannelLayouts *out_layouts;
 | 
			
		||||
    AVFilterFormats        *in_formats, *out_formats;
 | 
			
		||||
    AVFilterFormats        *in_samplerates, *out_samplerates;
 | 
			
		||||
    AVFilterChannelLayouts *in_layouts, *out_layouts;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    in_formats      = ff_all_formats(AVMEDIA_TYPE_AUDIO);
 | 
			
		||||
    if (!in_formats)
 | 
			
		||||
        return AVERROR(ENOMEM);
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
    in_layouts      = ff_all_channel_counts();
 | 
			
		||||
    if (!in_layouts)
 | 
			
		||||
         return AVERROR(ENOMEM);
 | 
			
		||||
    ff_channel_layouts_ref(in_layouts,      &inlink->out_channel_layouts);
 | 
			
		||||
 | 
			
		||||
    if(out_rate > 0) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user