Browse Source

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>
tags/n2.8
Michael Niedermayer 10 years ago
parent
commit
2ea8a48083
1 changed files with 15 additions and 6 deletions
  1. +15
    -6
      libavfilter/af_aresample.c

+ 15
- 6
libavfilter/af_aresample.c View File

@@ -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) {


Loading…
Cancel
Save